最近開發小程序,因為以前只寫過小程序的前端沒注意接口,現在才發現原來所有的接口都必須使用https協議了,馬上研究了一波,順便也想給自己的博客升成https的。
申請免費證書
-
哈哈沒辦法就是喜歡免費的。。。真是煞費苦心找了很久。。還是找到咯
-
https://freessl.org/
進去有兩個選項,一個亞洲誠信的(一年),一個let's encrypt(3個月),我選的亞洲誠信的 -
填寫郵箱,這里注意,如果選擇瀏覽器生產的話,最好用chrome,我用ff失敗了
-
得到一個txt記錄和記錄值
-
進入阿里雲后台設置DNS
-
添加后,等待1分鍾左右吧,就可以點“手動驗證”了
-
跳轉到一個驗證頁面,驗證,然后注意要全部都"匹配",如果沒匹配繼續在那個頁面操作
-
全部”匹配“后,回到之前頁面,點擊"驗證"
-
不出意外會獲得證書了
-
分別用記事本保存下來,上面的存
abc.crt
,下面存abc.key
-
進
https://www.myssl.cn/tools/downloadchain.html
,將abc.crt復制進去,得到中間證書chain.crt
配置apache的https
- 自己用的apache,這里只講apache的配置
- 安裝apache的mod_ssl.so模塊
yum -y install mod_ssl
- 修改 ssl.conf
vim /etc/httpd/conf.d/ssl.conf
- 重啟apache
service httpd restart
- 啟動重定向(可選),使用用戶HTTP訪問自動重定向為HTTPS,直接在http.conf最后配置即可,
vim /etc/httpd/conf/httpd.conf
- 在httpd.conf文件尾加入如下內容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
node配置https
-
剛開始以為可以了,結果進入網站一看,所有接口都報錯了,原來網站服務器使用https后,接口也必須使用https的,沒辦法,繼續折騰
-
node里面配置一波
-
重啟服務器node
-
規矩!
apache反向代理
- 還沒完。。。。
- 因為小程序后台接口是不允許ip或者端口的,而自己的后台接口是node寫的,用的端口是8888。
- 因為自己項目是前后端分離的,https默認端口443已經被apache占用了。咋辦?
- 只有用apache反向代理了
- vim /etc/httpd/conf/httpd.conf
- 在httpd.conf文件尾加入如下內容
# 反向代理
ProxyRequests Off
SSLProxyEngine on
# 正式
ProxyPass /api https://www.yangyuetao.cn:8888/api
ProxyPassReverse /api https://www.yangyuetao.cn:8888/api
# 測試
ProxyPass /api2 https://www.yangyuetao.cn:8889/api2
ProxyPassReverse /api2 https://www.yangyuetao.cn:8889/api2
#8888為apache的監聽端口
<proxy https://127.0.0.1>
AllowOverride None
Order Deny,Allow
Allow from all
</proxy>
- 這樣配置后
- 當請求
https://www.yangyuetao.cn/api
的時候,請求會自動變為https://www.yangyuetao.cn:8888/api
- 而請求
https://www.yangyuetao.cn/api2
的時候,請求會自動變為https://www.yangyuetao.cn:888/api
安全
- 關閉RC4弱密碼套件
https://www.cnblogs.com/pshell/p/7942059.html
- 關閉SSLv3
http://blog.sina.com.cn/s/blog_777f9dbb0102v8de.html
- 檢測
https://myssl.com/
最后
大家好,這里是「 TaoLand 」,這個博客主要用於記錄一個菜鳥程序猿的Growth之路。這也是自己第一次做博客,希望和大家多多交流,一起成長!文章將會在下列地址同步更新……
個人博客:www.yangyuetao.cn
小程序:TaoLand