1. 到阿里云网站上购买CA证书
跟我一样穷的,请选择免费证书。土豪随便选一个。
虽然不要钱,但是一定要去支付。
确认支付后,出现支付成功页面。
至此证书已购买成功!进入证书控制台。
2. 补全证书信息。
免费证书只能绑定一个域名,域名验证方式和CSR生成方式都用默认值不要改。填好后进入下一步。
填完后等待审核,一般1小时内会邮件通知审核通过。
3. 下载证书
回到证书列表页面,点击右侧下载链接。
进入下载页面,选择Tomcat,然后点下载证书按钮,会下载一个压缩文件。
页面上的操作说明不是很靠谱,不要全信。
4. 配置Tomcat
4.1 解压缩证书文件
在服务器上的Tomcat的conf目录下新建目录cert,把压缩包里的文件解压进去。
4.2 配置server.xml
4.2.1
打开server.xml文件,找到<Connector port="8080" protocol="HTTP/1.1"这行,将内容改成如图所示。我将tomcat的访问端口改成了80,这个看自己需要。并且设置了跳转到443端口,这样用户使用http访问时tomcat会自动帮你跳转到https。如果改了443端口号,后面的设置里都要将443端口改成你自己的设置。
4.2.2
找到<Connector port="8443" 这行,在下面增加如图所示内容。端口我使用了443,证书文件要使用绝对路径,密码要自己动压缩包里的密码文件里复制过来。
文本内容如下(有改动,重要!!!):
<Connector port="443"
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="C:/apache-tomcat-7.0.55/conf/cert/证书文件名.pfx"
keystoreType="PKCS12"
keystorePass="证书密码"
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2"
ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"/>
4.2.3
在下面再增加一行,内容如下:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
4.3 配置web.xml
打开conf目录下的web.xml文件,在文件最后,</welcome-file-list>下面增加下面内容:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
5. 重启Tomcat,在浏览器里查看结果。应该OK了!