场景
公司ios开发需要服务api都基于https,所以最近摸索了一下。
服务器部署在阿里云上,本来想直接找let encrypt 或者 trustAisa 的免费证书。但是搜了一些博客发现,阿里云服务器配置第三方的CA证书,还需要在阿里云上配置一个中间证书,感觉这样不太好,刚好阿里云官网也提供免费的CA证书,所以直接使用阿里云的。如下图所示。
配置方法
购买好免费的服务大概半小时证书就会签发,在后台界面可以看到官网文档,nginx,tomcat,apache,IIS各种都有。
我们看到tomcat里有三个步骤,其实这是个坑,因为不需要那么麻烦,直接用步骤2即可。
从阿里云后台下载好证书文件,把pfx后缀的文件复制到新建的tomcat/conf/cert目录下。
然后修改conf目录下的server.xml文件,添加如下内容:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/214532761540893.pfx"
keystoreType="PKCS12"
keystorePass="你的证书密码在pfx-password.txt文件内"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
另外将8080端口改为80,redirectPort端口8443改为443。
还要将http的url跳转至https
在web.xml末尾加上如下配置:
<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>
重启Tomcat服务大功告成。