一、创建证书
进入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工具导出私钥
时间: 2024-11-13 06:53:22