原文地址:http://chenxiaoqiong.com/articles/https
当遇到支付等安全性要求较高的情况时需要使用https协议,在此记录一下配置方式,方便以后查看,也希望能帮到其他朋友。
HTTPS协议详解
HTTPS是HTTP的安全版,其与http的主要区别如下:
1. https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
tomcat配置
windows环境
注:下文中“d:\tbb.keystore,d:\tbb.cer”为证书文件路径,没有会自动创建,路径可自行更改;“yourPassword”为密码
创建证书keystore
在命令行窗口中输入以下命令:keytool -genkey -alias tbb -keyalg RSA -keystore d:\tbb.keystore
根据提示输入信息:
注:名字和姓氏要输入本机ip,国家、地区代码:cn创建自签名的证书
在命令行窗口中输入以下命令:keytool -selfcert -alias tbb -keystore d:\tbb.keystore
导出证书:
keytool -export -alias tbb -keystore d:\tbb.keystore -storepass yourPassword
-rfc -file d:\tbb.cer
双击打开d:\tbb.cer,将证书安装在“受信任的根证书颁发机构”区域中(也可以配置好之后从浏览器导入)
- tomcat配置,打开conf/server.xml,加入如下配置:
tomcat6:
< Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150"
scheme="https" secure="true" keystoreFile="d:\tbb.keystore"
keystorePass="yourPassword" clientAuth="false" sslProtocol="TLS" />
Tomcat7:
< Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="d:
\tbb.keystore" keystorePass="yourPassword" clientAuth="false" sslProtocol="TLS" />
linux环境
- 创建证书keystore,执行下面的命令,按提示输入信息
keytool -genkey -alias tomcat -keyalg RSA -keystore /root/tomcat/apache-tomcat-8.0.35/conf/.keystore
- 修改tomcat的conf/server.xml文件
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="false" keystoreFile="/root/tomcat/apache-tomcat-8.0.35/
conf/.keystore" keystorePass="yourpassword" sslProtocol="TLS" />
测试效果
此配置是自己生成ssl证书,不被浏览器信任(具体表现https前面有个X):