一、首先要先注冊一個域名,可在阿里云萬網進行注冊
二、對域名進行解析,使用阿里云的DNS解析即可
1、域名購買成功后,進入域名控制臺,點擊解析
2、選擇快速解析,填寫你的公網IP,等一小會兒域名即可解析成功
三、購買CA證書,阿里云上有免費的CA證書
1、在安全(云盾)中選擇CA證書服務
2、選擇右上角的購買證書
進來默認是5000一年的專業版證書
這里我們選免費的DV證書就可以
購買成功后提交審核
下圖這三點非常重要:選擇DNS, 勾選證書綁定, 選擇系統生成CSR
提交成功后等待十分鐘的樣子會有阿里云的短信提醒你審核通過,當然也有可能審核不成功,你可以通過審核進度查看失敗的原因!
四、下載CA證書,按照阿里云的步驟,不過這里有坑,我用pfx配置無論怎么配置都無法訪問https,后來用jks配置就成功了,配置,下面貼出關鍵步驟
2、解壓后會有四個文件,如果你在證書審核時沒有選擇系統生成CSR,那就只有一個pem文件
3、因為我配置pfx一直都不成功,這里就不說pfx的配置了,直接說jks的配置
① 在服務器上的tomcat安裝目錄下創建一個cert文件夾,建議在conf文件夾中創建
cd /home/tomcat/apache-tomcat-default/conf
mkdir cert
② 將本地下載的.pfx文件上傳到服務器上的cert文件夾中
scp /Users/xxxx/Desktop/ca/xxx.pfx root@xxx:/home/tomcat/apache-tomcat-default/conf/cert
③ 執行下面命令生成jks文件,需要輸入密碼,強烈建議jks密碼和pfx密碼一致
該命令在cert文件夾中執行
keytool -importkeystore -srckeystore xxx.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
④ 退回到conf文件夾中
編輯server.xml文件
vi server.xml
找到Connection port="8443",取消注釋,并進行如下配置,按照阿里云的文檔說的配置是不成功的!
除此之外還要修改下面兩處
保存退出!
五、完成以上配置并不能成功訪問https
還要進行一下兩點配置
1、添加443安全組,跟配置8080安全組一樣,配置443安全組,若不知道如何配置請參考我的這篇文章阿里云服務器購買與Java環境部署
2、開放防火墻的443端口
centos7使用的是firewall 不是iptables,所以很多service命令都無法執行,下面是用firewall命令操作防火墻
firewall-cmd --zone=public --add-port=443/tcp --permanent (--permanent永久生效,沒有此參數重啟后失效)
重啟防火墻
systemctl restart firewalld.service
更多防火墻操作命令請自行百度哦!
做完以上幾點,應該就可以成功訪問https了!
如果要讓http強轉到https,可以在conf文件夾下的web.xml文件中進行如下配置
vi web.xml
進入web.xml之后,shift+G 跳到最后一行(web.xml將近5000行)
在welcome-file-list后面加上下面這段
<security-constraint>
<web-resource-collection >
<web-resource-name >OPENSSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
這樣你訪問http://www.baidu.com 就會自動跳轉到https://www.baidu.com 也可直接訪問baidu.com