配置环境
- win 7
- tomcat8
HTTP使用APR
1、下载apr,到官网 http://tomcat.apache.org/download-native.cgi 下载最新的apr
2、根据你tomcat使用的JDK版本(32位还是64位)复制相应的“tcnative-1.dll” 到你的jdk的bin目录下(如果tomcat指向的是jre就放到jre的bin目录下)
3、打开Tomcat下conf/server.xml,修改 protocol="org.apache.coyote.http11.Http11AprProtocol"
<Connector port="80"
executor="tomcatThreadPool"
protocol="org.apache.coyote.http11.Http11AprProtocol"
maxHttpHeaderSize="8192"
redirectPort="443" />
4、重启查看控制台打出
就算是配置成功了
HTTPS使用APR
刚才下载的文件夹里面有个openssl.exe可以用来生成ssl验证文件,步骤如下:
1、生成key(我这里使用的server.key,你可以根据需要使用其他名称),生成密码文件有2种方式,2种都可以正常使用
- 生成不带密码的key
openssl genrsa -out server.key 2048
- 生成带密码的key
openssl genrsa -des3 -out server.key 2048
我使用的是不带密码的key,两种的区别在于,带密码的key在每次启动tomcat的时候会要求你输入密码,不带密码的不需要,牺牲的是什么就不用我说了
2、生成crt,(server.crt,你可以根据需要使用其他名称;3650是过期天数,根据你自己的需求来设置)
openssl req -new -x509 -days 3650 -key server.key -out server.crt
3、复制server.key和server.crt到tomcat的bin目录(你也可以复制到其他路径,后面配置的时候写全路径就可以)
4、修改conf/server.xml ,主要是修改protocol="org.apache.coyote.http11.Http11AprProtocol"和增加ssl验证文件
- 你的server.key和server.crt没有复制到bin目录下时要这样写
<Connector port="443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
SSLCertificateFile="你的server.crt所在文件夹全路径/server.crt"
SSLCertificateKeyFile="你的server.key所在文件夹全路径/server.key"/>
- 你可以在你的tomcat目录下新建一个ssl文件夹把server.key和server.crt放在下面,然后这样写
<Connector port="443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
SSLCertificateFile="ssl/server.crt"
SSLCertificateKeyFile="ssl/server.key"/>
5、在conf/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 看到如下 即成功
其他说明
这种方式生成的ssl证书,不能通过微信的验证,如果需要还是要去申请第三认证的CA证书