宜蘭大學區域網路中心 2016
WHY SSL/TLS? Sniffing http Password With Ettercap 2
WHAT IS SSL/TLS? SSL (Secure Socket Layer) 安全通訊協定 一種安全協定, 目的是為網際網路通訊, 提供安全及資料完整性保障 TLS(Transport Layer Security) 傳輸層安全協議 基於 SSL 所建立更新 更安全的資料傳輸方式 HTTPS FTPS SMTPS HTTP over (SSL/TLS) = HTTPS FTP over (SSL/TLS) = FTPS SMTP over (SSL/TLS) = SMTPS 3
SSL/TLS 運作方式 From Youtube : SSL TLS HTTPS process explained in 7 minutes 1. 使用者要求建立 SSL 連線 2. 網站回應 SSL 憑證 3. 使用者透過 CA( 憑證中心 ) 確認該憑證是正確的 4. 使用者回覆已確認憑證無誤, 可以建立連線 5. 網站與使用者間已建立 SSL 連線 4
優缺點 免費 SSL/TLS 憑證服務 付費 SSL/TLS 憑證服務 優點 簡單化自動化快速核發免費 使用時間長 (1~3 年 ) 可人工驗證申請人真實性安全性較高 缺點 使用期限較短只能驗證網站所權無法確認身份憑證可能被濫用 申請程序繁瑣核發工作天長付費 5
一般憑證申請流程 6
免費 SSL 憑證服務 Letsencrypt (ISRG) https://letsencrypt.org/ StartSSL(StartCom) https://www.startssl.com/ CloudFlare https://www.cloudflare.com/ssl/ Wosign( 沃通 ) http://freessl.wosign.com/freessl AffirmTrust http://www.affirmtrust.com/ 7
什麼是 LET S ENCRYPT ISRG 於 2015 年提供的免費憑證簽發服務 是一個由多個組織和公司共同資助 (Cisco, Akami, Mozilla) 提高網際網路安全的非營利性公益組織 基於 ACME 協議提供了一套自動化的證書管理服務 包括憑證的發行 更新 撤銷等功能 一切都是免費的 2016/4/16 已發行超過 170 萬個憑證, 有 380 萬個網站使用 8
LET S ENCRYPT 特色 免費 : 每個網站都可申請一個免費憑證 自動 : 在網站主機上可自動化申請憑證的流程 安全 : 在使用者及憑證機構端, 已支援 TLS 的運作 透明 : 所有憑證的發行與撤銷記錄均可開放給需要調查的人員 開放 : 提供標準化的 API, 伺服器可自動申請發行及重新取得憑證 互助 : 透過社群網站的方式相互交流, 解決相關問題 9
LET S ENCRYPT 憑證申請流程 1 2 1. 在網站伺服器上產生金鑰 2. 通知 Let s Encrypt 伺服器, 要註冊一個網域名稱 3. Let s Encrypt 伺服器要求放一個特定的內容在網站上, 並可讓外部存取 ed98 = Let s Encrypt 提供的序號 (9cf0b331)+ 網站金鑰所產生 3 10
LET S ENCRYPT 憑證申請流程 4 5 4. 網站通知 Let s Encrypt 已將內容放在網站上 5. Let s Encrypt 確認內容無誤後, 發行憑證給網站 11
申請注意事項 Names/Certificate 一張憑證內, 最多可使用 100 個網域名稱 certbot certonly --webroot -w /var/www/example -d example.com Certificates/Domain 每個 domain 每個星期最多可以產生 20 個憑證 [blog.example.com] Certificates/FQDNset 每個星期每個 FQDN 組合不可超過 5 個憑證 [www.example.com, example.com] Registrations/IP address 在 3 小時內, 單一 IP 可註冊的次數不可超過 500 次 12
LET S ENCRYPT 安裝 ~WINDOWS 篇 (1/8) 安裝環境 Windows 2008 R2 + IIS 7.5 1. 下載最新版 letsencrypt-win-simple v1.9.1 用戶端軟體 : https://github.com/lone-coder/letsencrypt-win-simple/releases/ 2. 然後在目錄中執行 letsencrypt 命令, 進行第一次初始設定以系統管理員身分執行 letsencrypt.exe 13
LET S ENCRYPT 安裝 ~WINDOWS 篇 (2/8) 3. 設定你的 mail ( 用於更新失敗通知 ) 4. 同意 LE-SA-v1.0.1-July-27-2015.pdf 使用條款 14
LET S ENCRYPT 安裝 ~WINDOWS 篇 (3/8) 5. 選擇您要申請的網站 如下圖所示, 選擇 1àIIS earth.niu.edu.tw 15
LET S ENCRYPT 安裝 ~WINDOWS 篇 (4/8) 6. 這裡詢問是否需要指定使用者, 選擇 N 7. 看到此畫面就表示憑證已經自動放入 IIS 裡面了 16
LET S ENCRYPT 安裝 ~WINDOWS 篇 (5/8) 8. 檢視 IIS 裡 Let s Encrypt 核發的憑證, 有效期限為 90 天 17
LET S ENCRYPT 安裝 ~WINDOWS 篇 (6/8) 9. 檢視工作排程 : 已自動新增憑證更新的工作排程 排程名稱為 :letsencrypt-win-simple httpsacme-v01.api.letsencrypt.org 每天上午 09:00 檢查並更新, 不需擔心憑證 90 天到期! 18
LET S ENCRYPT 安裝 ~WINDOWS 篇 (7/8) 10. 擊點瀏覽器左上方網址列綠色鎖頭 檢查網站的憑證有效, 並且經過可信賴的第三方單位驗證 19
LET S ENCRYPT 安裝 ~WINDOWS 篇 (8/8) Let s Encrypt For Windows Server 申請憑證參考資料 Official Documentation https://letsencrypt.readthedocs.org/en/latest/intro.html Let s Encrypt unofficial Windows Client https://github.com/lone-coder/letsencrypt-win-simple Let s Encrypt unofficial Windows Client releases https://github.com/lone-coder/letsencrypt-win-simple/releases/ 20
LET S ENCRYPT 安裝 ~LINUX 篇 (1/4) 參考網站 : https://letsencrypt.tw/ 設定方式 (CentOS + Apache) 安裝必要套件 curl openssl mod_ssl git 下載 letsencrypt.sh cd ~; git clone https://github.com/lukas2511/dehydrated.git 將程式放在指定目錄 mkdir /etc/dehydrated/ cp ~/dehydrated/dehydrated /etc/dehydrated/ chmod a+x /etc/dehydrated/dehydrated 21
LET S ENCRYPT 安裝 ~LINUX 篇 (2/4) 設定方式 (CentOS) 建立 SSL certificate 證驗證過程時所需要的目錄 mkdir -p /var/www/dehydrated/ 在 Apache 設定檔中新增路徑 Alias /.well-known/acme-challenge/ /var/www/dehydrated/ (Let s Encrypt 會到該目錄中確認驗證內容 ) 產生 SSL certificate /etc/dehydrated/dehydrated -c -d < 要申請的網域名稱 > 22
LET S ENCRYPT 安裝 ~LINUX 篇 (3/4) 設定方式 (CentOS) 確認是否有成功產生憑證 ls /etc/dehydrated/certs/< 網域名稱 >/ ( 會有 cert chain fullchain privkey 等檔案 ) 修改 Apache 的 SSL 設定 (/etc/httpd/conf.d/ssl.conf) SSLCertificateFile /etc/dehydrated/certs/< 網域名稱 >/cert.pem SSLCertificateChainFile /etc/dehydrated/certs/< 網域名稱 >/chain.pem SSLCertificateKeyFile /etc/dehydrated/certs/< 網域名稱 >/privkey.pem 重新啟動 Apache service httpd restart 23
LET S ENCRYPT 安裝 ~LINUX 篇 (4/4) 自動檢查並更新憑證 編輯 /etc/cron.d/letsencrypt-letsencrypt 新增下列內容 0 0 * * * root sleep $(expr $(printf "\%d" "0x$(hostname md5sum cut -c 1-8)") \% 86400); ( /etc/dehydrated/dehydrated -c -d < 網域名稱 >; /usr/sbin/service apache2 reload ) > /tmp/dehydrated-letsencrypt.log 2>&1 24
DigiCert SSL Installation Diagnostics Tool https://www.digicert.com/help/ 25