Https 的世代來到, 開發者你應該注意的事情
隨著資安的要求越來越高, Google, Bing 等大廠推出的搜尋引擎都開始要求網站都需要有 Https.
有配合的人可以提高搜尋時得到比較高的評分. 此外對於所有的電商網站都有 Https 的話.也可以強化對資料的保護.
Http 相對於 Https
單字只差了 ‘s’ , 這個 ‘s’ 代表的就是 SSL ( Secure Sockets Layer ), 簡單的說 Https 就是有加密過的, Http 沒有
想像一下當你在登入系統時, 帳號密碼都可以被別人看光光時 QQ 那就真的是悲劇了
HTTP 一般來說 80 port ,而 HTTPS 是使用 443 port. HTTPS 將傳輸的資料以 SSL 加密後,再使用 HTTP Protocol 並透過 TCP 方式傳送出去
至於加密的演算法 則是一直在演進. 這邊不描述
CA : Certificate Authority
如何讓網站取得一個簽章, 大略有幾種方法
- 自己定一個, 不過外面不承認.這個只能給開發者自己測試用
- 去跟廠商買, 價格應該還好幾千元
- 使用 Let’s Encrypt Let’s Encrypt is a free, automated, and open Certificate Authority. 免錢
SSL 自己做簽章
1. mkdir ~/mycert && cd ~/mycert 2. mkdir certs crl newcerts private 3. cp /usr/share/ssl/openssl.cnf ~/mycert/ 4. openssl rand 1024 > ./private/.rand : 5. chmod 600 ./private/.rand 6. echo "0001" > serial 7. touch index.txt
修改 openssl.cnf
dir = /home/${userid}/mycert //改成你自已的路徑
1, openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 3650 -config openssl.cnf 2, openssl req -nodes -new -x509 -keyout mykey.pem -out myreq.pem -days 365 -config openssl.cnf 3, openssl x509 -x509toreq -in myreq.pem -signkey mykey.pem -out tmp.pem 4, openssl ca -config openssl.cnf -policy policy_anything -out mycert.pem -infiles tmp.pem
以上就完成摟
接下來是 ATS 的設定
1.
修改 records.config
CONFIG proxy.config.http.server_ports STRING 443:ipv4:ssl CONFIG proxy.config.http2.enabled INT 1
2.
修改 remap.config:
map https://xxx.xxx.xxx.xxx/ http://xxx.xxx.xxx.xxx/
3.
修改 ssl_multicert.config:
dest_ip=* ssl_ca_name=/home/vocka/mycert/cacert.pem ssl_cert_name=/home/vocka/mycert/mycert.pem ssl_key_name=/home/vocka/mycert/mykey.pem
4. restart ATS
驗證 https 與 http2
安裝 chrome extensions ( https://chrome.google.com/webstore/detail/http2-and-spdy-indicator/mpbpobfflnpcgagjijhmgnchggcjblin)
有支援 http2 的會有一個閃電標示