欢迎添加小编微信:z542783574,获取完整的java学习视频和电子书籍。
一、HTTPS定义:
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
二、https配置方法,本次配置方法采用从CA机构申请的服务器设备证书证书的方法。
具体步骤:
1)生成服务器证书的csr证书请求文件,打开OpenSSL工具,没有的请自行百度下载。
a、生成服务器证书的私钥,会在指定路径生成key文件。
genrsa -out D:/01SSLCer/AppServer/demoServer.key 2048
b、根据key文件生成csr证书请求文件(CN更改为实际域名)
req -new -days 730 -sha256 -key D:/01SSLCer/AppServer/demoServer.key -out D:/01SSLCer/AppServer/demoServer.csr -subj "/C=CN/L=hz/O=ctools/OU=ctools/CN=域名" -config openssl.cnf
解释:-days 后面的数字代表天数,730代表生成的证书的有效期的有效天数。
-sha256 代表加密算法。
-key 上一步生成的证书私钥。
-subj 证书主题项,其中的cn代表证书的域名
2)将csr证书请求文件发给CA机构生成cer服务器证书
3)生成服务器证书文件和服务器证书秘钥库
a)生成服务器证书文件p12,使用CA生成的cer文件和第一步生成的key文件生成p12。
pkcs12 -export -in D:/01SSLCer/AppServer/demoServer.cer -inkey D:/01SSLCer/AppServer/demoServer.key -out D:/01SSLCer/AppServer/demoServer.p12
b)将证书信任链添加到证书信任链
keytool -keystore D:/01SSLCer/AppJKS/tomcatTruststore.jks -keypass 123456 -storepass 123456 -alias ctools -import -trustcacerts -file D:/01SSLCer/CARoot/CTOOLS.cer
备注:
tomcatTruststore.jks 是生成的证书信任链信息,
-keypass 证书信任链密码
-file 需要导入的信任链证书
-alias 导入到证书的别名,不可重复
此步骤需要将完整的证书链都导入到这个证书库中,如根证书、二级根证书、服务器证书等三级都到导入。
可通过下面的方法获取jks中导入了的证书信息
keytool -v -list -keystore tomcatTruststore.jks
4)配置到tomcat中
修改tomcat的conf目录里的server.xml文件,找到类似下面内容的配置处,添加配置如下:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="D:\01SSLCer\AppServer\demoServer.p12" keystorePass="Anders" keystoreType="PKCS12"
truststoreFile="D:\01SSLCer\AppJKS\tomcatTruststore.jks" truststorePass="Anders" truststoreType="JKS" />
属性说明:
clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证,如果只是访问使用https,不做身份验证的话,建议关闭双向验证。
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器的根证书
truststorePass:根证书密码
配置好后,重启tomcat
5)访问测试