1、前置
jdk、apache tomcat、openssl
2、配置流程
[root@centos apache-tomcat-6.0.37]#keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore /home/asia/apache-tomcat-6.0/ssl/tomcat.keystore -validity 36500
keysize 设置密码长度,有安全检查密码长度限制,需要配置
输入keystore密码: Asiainfo2015!@#$%^!@#$%^
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: free4lab
您的组织单位名称是什么?
[Unknown]: free4lab
您的组织名称是什么?
[Unknown]: free4lab
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的州或省份名称是什么?
[Unknown]: beijing
该单位的两字母国家代码是什么
[Unknown]: CN
CN=free4lab, OU=free4lab, O=free4lab, L=beijing, ST=beijing, C=CN 正确吗?
[否]: y
输入<tomcat>的主密码
(如果和 keystore 密码相同,按回车):
[root@centos apache-tomcat-6.0.37]# cat conf/.keystore
然后修改tomcat配置文件server.xml
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" keystoreFile="/root/tomcat/apache-tomcat-6.0.37/conf/.keystore" keystorePass="yourpassword" sslProtocol="TLS" />
<Connector port="8888" protocol="HTTP/1.1" SSLEnabled="true" connectionTimeout="20"
minSpareThreads="25" maxThreads="150" scheme="https" secure="true"
clientAuth="false"
keystoreFile="/home/asia/apache-tomcat-6.0/ssl/tomcat.keystore" keystorePass="Asiainfo2015!@#$%^!@#$%^"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA"
/>
配置超时连接时间:
connectionTimeout="20"
这样浏览器访问就相对安全了,浏览器和服务端进行了非对称加密的握手,然后协商对称加密的密钥,然后进行相对快速的对称加密传输。
即时密文在网络传输中被截获,因为无法获知对称密钥,所以这个http api就是安全的!