自己生成一个ssl证书,因为是自己生成的所以该证书,不被浏览器信任(具体表现https前面有个X)
[root@centos apache-tomcat- 6.0 . 37 ]# keytool -genkey -alias tomcat -keyalg RSA -keystore /root/tomcat/apache-tomcat- 6.0 . 37 /conf/ .keystore 输入keystore密码: 再次输入新密码: 您的名字与姓氏是什么? [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" />
通过curl访问,就忽略验证证书这一步
[root@f0 huahui]# curl --insecure https://192.168.1.190:8443/
hello huahuiyang
ssl https
这样浏览器访问就相对安全了,浏览器和服务端进行了非对称加密的握手,然后协商对称加密的密钥,然后进行相对快速的对称加密传输。
即时密文在网络传输中被截获,因为无法获知对称密钥,所以这个http api就是安全的!