tomcat的https配置

一、创建证书

进入java的bin目录,使用keytool工具创建证书


keytool -genkey -alias pq -keyalg RSA -keystore pqkey
语法解释:


keytool -生成证书指令 -别名指令 别名(自己指定) -算法指令 算法名称 -存储文件名字指令 文件名(可以包含存储路径)

指令运行成功会提示输入信息,注意事项:

1)输入名称和姓氏时输入域名,如果没公网ip和域名时不能输入ip

2)路径不能含有空格

二、导出证书

导出为.crt文件


keytool -export -file pinqidesign.crt -alias wsria -keystore pinqidesignkey
指令解释:


keytool -导出指令 -导出文件指令 导出结果文件名称(可以包含路径) -别名指令 别名(第一步填写的别名) -证书指令 第一步是生成的指令文件

三、导入到密码到java服务器


keytool -import -keystore java安装目录\jre\lib\security\cacerts -file pinqidesign.crt -alias pinqidesign

如果需要密码则输入:changeit

这是java jdk cacerts密钥库的默认密码

四、应用到tomcat

打开tomcat的server.xml文件,将83到87行的注释拿掉

<!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->



设置密钥文件和密码
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="C:/apache-tomcat-6.0.36/pinqidesignkey" keystorePass="qwerty"/>


Tomcat时发现控制台报错如下:
2012-5-16 13:10:37 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.23.
2012-5-16 13:10:37 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2012-5-16 13:10:37 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
2012-5-16 13:10:37 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8443"]
2012-5-16 13:10:37 org.apache.coyote.AbstractProtocol init
严重: Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: <span style="background-color: #ffff00;">Connector attribute SSLCertificateFile must be defined when using SSL with APR</span>
        at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:484)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:566)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:417)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)



第一种方式拿掉server.xml种erp相关
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

第二种方式:

修改协议:org.apache.coyote.http11.Http11Protocol


  <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="C:/apache-tomcat-6.0.36/pinqidesignkey" keystorePass="qwerty"/>


第三种方式:先把keystore转换为pkcs12格式,然后使用openssl工具导出私钥

你可能感兴趣的:(tomcat的https配置)