首选搞清楚自签名证书与证书机构颁发的证书的区别
签名证书:由权威颁发机构颁发给bai服务器或者个人用于证明自己身份的东西,默认客户端都是信任的。主要目的是用来加密和保证数据的完整性和不可抵赖性。
自签名证书:由服务器自己颁发给自己,用于证明自己身份的东西,非权威颁发机构发布,默认客户端都是不信任的。主要目的是用来加密和保证数据的完整性和不可抵赖性,与签名证书相同。
配置步骤
生成证书
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:Windowssystem32>"F:javaj2sdk1.7.0.79inkeytool" -genkey -alias tomcat -keyalg RSA -keystore "F:javav155Btomcat7.0.100jksssl.jks"
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[terwer]: terwer
您的组织单位名称是什么?
[china]: china
您的组织名称是什么?
[china]: china
您所在的城市或区域名称是什么?
[shenzhen]: shenzhen
您所在的省/市/自治区名称是什么?
[nanshan]: nanshan
该单位的双字母国家/地区代码是什么?
[518000]: 518000
CN=terwer, OU=china, O=china, L=shenzhen, ST=nanshan, C=518000是否正确?
[否]: y
输入 <tomcat> 的密钥口令
(如果和密钥库口令相同, 按回车):
C:Windowssystem32>
配置tomcat的 server.xml
<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="F:javav155Btomcat7.0.100jksssl.jks" keystorePass="123456"
clientAuth="false" sslProtocol="TLS"/>
<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector protocol="org.apache.coyote.http11.Http11AprProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="/usr/local/ssl/server.crt"
SSLCertificateKeyFile="/usr/local/ssl/server.pem"
SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>
-->
测试
配置好之后,重启tomcat,访问下面的链接
https://localhost:8443/
参考
https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration