如何让你的网站免费使用阿里云的Https服务

Posted by 石玉军 on 2018-07-26

刚刚给智享加上了Https,在这个过程中遇到了一些坑,特此记录一下

首先就是购买的时候第一个坑如下图所示
图片

进入了购买页面以后发现,what?怎么没有免费版。其实这个真的是它隐藏的太深了,我们按照下图所示,首先选择品牌为Symantec然后选择保护类型为1个域名以后就会出现

免费型的了
图片

接着就是证书购买以后进入我的控制台按照提示进行补全信息提交审核就可以了,个人感觉审核特别快,我的审核1分钟就搞定了。

审核结束就可以开始进行配置了,回到证书控制台点击下载按钮进入页面选择Tomcat标签点击下载

图片

下载完毕以后解压文件重点关注*.pfx和pfx-password.txt这两个文件,在我们的服务器上新建名为cert的文件夹,把这两个文件copy进来。紧接着,打开tomcat的server.xml文件

修改几处配置:

1
2
3
4
5
6
7
8
9
10
11
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/local/apache-tomcat-8.5.24/conf/cert/214750658330953.pfx"
keystoreType="PKCS12"
keystorePass="密码"
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"/>

注意上方keystorePass属性改为你pfx-password.txt文件中的密码,keystoreFile属性改为存放*.pfx文件的绝对路径。

注意如果使用的是阿里云服务器 port属性的端口号记得要在安全组配置。

如果你需要http和https双协议都支持的话,那么 完成以上操作就可以了,如果你想默认浏览器使用http也会重定向到htpps的话请继续忘下看。

1
2
3
4
5
6
7
8
9
10
<Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="443"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css,application/javascript"
useSendfile="false" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

此处需要修改的属性为redirectPort,将所有的重定向端口改为443,当然,这些操作还不够,:wq保存退出,打开web.xml 在文件最下方加入下方配置

1
2
3
4
5
6
7
8
9
<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>

至此,大公告成,:wq保存退出重启tomcat服务器访问一下试试看吧

完成以后部分人可能会出现一下情况图片 为啥没有安全锁🔒的标志呢,这个其实是因为你的程序发送的请求中包含了http情况,去检查一下程序的请求吧,如果你懒得去看的话那么就在你的程序起点head标签中增加一个标签

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
强制转换所有的http请求为https请求。(但是这样程序中请求的http的资源就不可用了,自己取舍一下吧)。