站內搜尋

Friday, August 24, 2018

[Linux][架站] Ubuntu 16.04 如何啟用SSL 讓網址支援 https://

參考 [Linux][架站] ubuntu 16.04 如何設定 apache 的 VirtualHost 可以架起 http:// 的網站,如果將 url 改成 https:// 會出現"無法連上這個網站"的畫面,因為 server 目前沒有監聽 443 port (可用 #netstat -nlpt 查看 有沒有443),這時需先啟用 ssl,如下:
$sudo su -
#a2enmod ssl
#service apache2 restart
檢查一下 server 有沒有監聽 443 port。
#netstat -nlpt
應該就會看到 443 了,這時url輸入 https:// 會出現跟剛剛不一樣的訊息 "這個網站無法提供安全連線",那是因為我們沒有憑證。

申請憑證需要費用,以 GoDaddy 的憑證為例,付費後會得到三個檔案(兩個crt、一個key),需要放在 server 指定位置上,如下:
/etc/ssl/certs/myweb.com.crt
/etc/ssl/certs/gd_bundle-g2-g1.crt
/etc/ssl/private/myweb.com.key
(可以用從別台已經有SSL的主機,用SCP將憑證複製過去 舉例: #scp /etc/ssl/certs/myweb.com.crt  root@172.31.0.99:/etc/ssl/private/  PS.因為需要用root來執行scp 請先參考 Ubuntu 如何使用 root 連 ssh 或 scp )
有這三個檔案後才能正式進入設定的階段,步驟如下...

$sudo su -
#vim /etc/apache2/site-available/site.myweb.com.conf

複製 80 port 的設定,如下
<VirtualHost *:80>
  (內容)
</VirtualHost>

然後,在下方貼上 (將 80 改成 443)
<VirtualHost *:443>
  (原 80 port 內容)
  <Directory /var/www/site.myweb.com>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
  SSLEngine on
  SSLProtocol All -SSLv2 -SSLv3
  SSLProtocol TLSv1.2  #傳輸安全性協定(TLS1.0~1.2) 2020年起建議使用1.2 避免瀏覽器顯示不安全的提示
  SSLCertificateFile /etc/ssl/certs/myweb.com.crt
  SSLCertificateKeyFile /etc/ssl/private/myweb.com.key
  SSLCertificateChainFile /etc/ssl/certs/gd_bundle-g2-g1.crt
  <FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
  </FilesMatch>
  <Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
  </Directory>
</VirtualHost>

修改完 conf 檔後,重啟apache服務
#service apache2 restart
開啟 https://網址 應該就能看到網頁內容囉。

備註:
如果要讓 http:// 自動轉址到 https:// 方法如下:
#vim /etc/apache2/site-available/site.myweb.com.conf
<VirtualHost *:80>
  (原內容)
  RewriteEngine on
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [R=301,L]
</VirtualHost>
改好後 啟用 Rewrite 功能
#a2enmod rewrite
#service apache2 restart

註1:
如果想要查詢SSL憑證的到期日
#cd /etc/ssl/certs/
#openssl x509 -enddate -noout -in myweb.com.crt
或者用 chrome 瀏覽器開啟網站 然後點擊上方網址列前面的鎖頭圖示

註2:
如果要調整傳輸安全性協定(例如:SSL3.0 or TLS1.0~1.2) 請修改
SSLProtocol TLSv1.2

No comments:

Post a Comment