tomcat6下配置https

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat6下配置https相关的知识,希望对你有一定的参考价值。

严重: Error initializing endpoint
java.lang.Exception: No Certificate file specified
at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:684)
at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1058)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
at org.apache.catalina.startup.Catalina.load(Catalina.java:530)

严重: Catalina.start
LifecycleException: Protocol handler initialization failed: java.lang.Exception: No Certificate file specified
at org.apache.catalina.connector.Connector.initialize(Connector.java:1060)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
at org.apache.catalina.startup.Catalina.load(Catalina.java:530)
at org.apache.catalina.startup.Catalina.load(Catalina.java:550)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

严重: Error starting endpoint
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/??????/???)????í?????Ρ?
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:612)
at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:717)
at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:137)
at org.apache.catalina.connector.Connector.start(Connector.java:1131)
at org.apache.catalina.core.StandardService.start(StandardService.java:531)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

严重: Catalina.start:
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/??????/???)????í?????Ρ?
at org.apache.catalina.connector.Connector.start(Connector.java:1138)
at org.apache.catalina.core.StandardService.start(StandardService.java:531)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

以上是看了网上的步骤做的 关于端口 我已经改成8060了 但还是出错
server.xml中https我改的是
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="E:\apache-tomcat-6.0.18\bin\server.keystore" keystorePass="changeit"/>

按照这个网址http://danwind.javaeye.com/blog/603402
我已经在bin目录中已经做过认证的导入和导出了

望高手不吝赐教!
如果一下说不清楚加我qq313180989 添加时请说明

参考技术A 不是端口的问题是ssl验证的问题
将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol",问题得以解决;
参考技术B http://rhuichao.javaeye.com/admin/blogs/617201

阿里云上,Ubuntu下配置Nginx,在tomcat中加了https协议就不可以了

问题

  阿里云上,Ubuntu服务器,本来部署的是tomcat,并且使用了https 协议。后来为了静态资源分离集成了 nginx,nginx代理跳转到 tomcat。刚开始直接访问http 网址发现,图片会经过nginx 的代码。但是访问https 网址发现,图片还是只走了apache 。

 

分析

  因为tomcat 配置了ssl证书,而非 nginx配置ssl。所以当浏览器访问域名的时候,域名解析的时候,直接跳转到https服务了,并没有经过nginx的代理。

  tomcat的端口是8080, nginx的端口是80,单单这一点似乎不影响通过域名访问,奇怪。看来如果域名解析使用了ssl证书,使用到证书的服务器即使端口号不是80,也能够直接通过地址访问,不要加端口号。

  下图是域名解析列表,第一条记录就是申请ssl证书时使用到的。

 

解决办法

1、删除tomcat上配置的ssl 证书,给nginx 添加ssl证书,重新安装部署

可以参看阿里云的文档:

SSL数字证书Tomcat配置部署指导
  https://help.aliyun.com/video_detail/54217.html

SSL数字证书Nginx配置部署指导
  nginx安装证书:https://help.aliyun.com/video_detail/54216.html

具体的操作是在控制台-安全(云盾)-CA证书服务中


2、此时直接使用http 访问会报“400 Bad Request”错

此时需要 nginx 将http请求转发到https请求

所以还需添加配置:

  #让http请求重定向到https请求
  error_page 497 https://$host$uri?$args;

 

原创文章,欢迎转载,转载请注明出处!

以上是关于tomcat6下配置https的主要内容,如果未能解决你的问题,请参考以下文章

怎样配置tomcat6.0的虚拟路径

怎样配置tomcat6.0的虚拟路径

Tomcat6.0服务器下数据库连接池详解

Myeclipse 8.5中tomcat6.0怎么都启动不了,环境变量、Myeclipse中都配置了,每次启动tomcat6.0 都自动关闭

在tomcat下context.xml中配置各种数据库连接池

查看Tomcat6的内存使用情况