Tomcat版本:7.0
(1)配置Apr:
到官网 http://tomcat.apache.org/download-native.cgi 下载最新的apr
复制相应的“tcnative-1.dll”(里面有32位和64位的,根据情况拷贝相应的dll)到你的jdk的bin目录下
(2)配置你的Tomcat的server.xml:
将connector为port="HTTP/1.1"修改为“<Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" redirectPort="8443"/>”
(3)重启Tomcat,看到 :
表示apr启动成功
接下来配置https:
(1)首先要下载openssl(apr必须用OpenSSL,nio和bio用keystore就可以了)
官网下载:http://slproweb.com/products/Win32OpenSSL.html ,选择相应的版本下载,我选择的是:
(2)按步骤安装(在安装过程中要注意bin的存储位置,这样可以设置“环境变量”(像java和javac一样),不过我是安装到OpenSSL的根目录中,没设置“环境变量”,每次使用都要切换到bin中)
(3)打开命令行,在设置完环境变量或切换到bin目录后,输入:
openssl genrsa -des3 -out xxx.key 2048 -config openssl.cfg //生成私钥
然后:
openssl req -new -x509 -days 365 -key xxx.key -out xxx.crt -config openssl.cfg//生成证书
(4)将Tomcat中的server.xml中connector的port=8443(默认XML里面是注释掉的)取消注释,并修改为:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
SSLCertificateFile="${path}/xxx.crt"
SSLCertificateKeyFile="${path}/xxx.key"
clientAuth="false" sslProtocol="TLS"
/>
(5)在项目的web.xml中添加:
<!-- SSL登陆 -->
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
(6)重启Tomcat:
它会提示你输入密码,并且信息输出有:
则https配置成功,打开localhost:8080开头的网站,都会调转到https