標籤:https ssl godaddy
預備知識:
1.什麼是https, 相對於https有什麼優勢/劣勢?
2.升級https需要準備的檔案? 如何升級?
3.ssl認證類型? (EV/OV/萬用字元認證....)
4.如何選擇ssl認證? 如何選擇供應商? (推薦一家:godaddy比較便宜,Versign/GlobalSign等都比較偏貴)
5.如何免費擷取信任的ssl認證?
如果對以上幾點還不熟悉的同學可以先去瞭解以下,本文主要講解第五點如何擷取到免費的被信任的SSL認證。 什麼時候可以考慮到使用免費的認證。 例如:你開發了一個app裡面將要傳輸一些敏感資訊,例如:使用者姓名/連絡方式等等。為了保護使用者的資料不被泄漏就需要加上加密功能。 但是對於已經release的用戶端我們不可能要求用戶端升級,也就是老的用戶端依然使用的是http協議和老的用戶端程式。 如何保證使用者透明的情況下加密使用者資料呢? 自然我們想到了https,那好既然需要部署https認證如何來呢? 你也可以自簽名一個認證, 但是自簽名的認證對於已經發出去的app會認為是不合法的CA導致錯誤。 所以,咱們必須搞到一個被信任的CA中心頒發的認證。 根據個人經驗目前有如下幾種方式:
方式一: 到沃通網站上申請免費的SSL認證。 (最近關閉了,可能幾個月後會開放)
方式二: 到各大供應商去申請試用的認證(解決緊急情況),一般有效期間是7天或者是30天,RapidSSL是30天。
方式三: 還是開源的力量大, 使用"Let‘s Encrypt"提供的認證。
接下來, 重點介紹一下如何使用"Let‘s Encrypt"產生和renewal認證。"Let‘s Encrypt"是一家非營利的由各大知名網路和互連網公司贊助的一個提供免費認證的機構(https://letsencrypt.org/)。 有Akami/CISCO/Chrom...大家還是可以放心使用。 但是,該機構提供的認證有效期間只有三個月也就是90天,所以90之後需要更新認證。
好,進入主題下面給大家示範以下如何在Nginx on Debian 7下產生SSL認證:需要準備好nginx和
1. 準備好一個nginx伺服器。大家可以自行去下載和安裝nginx。在編譯nginx的時候注意加上http ssl模組。 具體命令可以參考:
./configure --prefix=/data/server/nginx/nginx1.7/ --with-pcre=/data/server/nginx/source/pcre-8.35/ --with-zlib=/data/server/nginx/source/zlib-1.2.8/ --with-http_ssl_module --with-http_realip_module --with-select_module --with-poll_module --add-module=/data/server/nginx/source/nginx_accept_language_module-master
2.下載安裝用戶端
wget https://dl.eff.org/certbot-autochmod a+x certbot-auto
3.準備好依賴包 (最好使用:ubuntu14.04以上的)
./certbot-auto
4.產生認證
4.1.因為大多數情況Nginx都是作為一個負載平衡的作用在前端,後端放的商務服務。certbot需要在網域名稱對應的webroot下面建立.well-known/acme-challenge檔案。 所以,如果對於目前情況。我做了一個映射把這個路徑映射到了nginx的一個目錄下面。
location ~ /.well-known { access_log logs/eapa_access.log main; root html; index index.html index.htm; }
4.2.產生認證,使用./certbot-auto certonly命令產生認證。參數說明: -w 指定webroot(即:4.1中配置的root目錄), -d 指定網域名稱,可以是多個。 -w -d 是成對出現,也可以一次產生多個認證。下面我們為eapa.test.com產生一個認證,該項目的路徑為:/data/server/nginx/nginx1.7/html。
./certbot-auto certonly -w /data/server/nginx/nginx1.7/html -d eapa.test.com
命令執行成功以後認證就放在了:/etc/letsencrypt/live/eapa.test.com/下面,可以看到如下幾個檔案:
lrwxrwxrwx 1 root root 42 Nov 30 05:16 cert.pem (認證檔案)lrwxrwxrwx 1 root root 43 Nov 30 05:16 chain.pemlrwxrwxrwx 1 root root 47 Nov 30 05:16 fullchain.pemlrwxrwxrwx 1 root root 45 Nov 30 05:16 privkey.pem (免密鑰的私密金鑰)
4.3安裝認證到nginx伺服器就很簡單了,下面貼出來了原始碼
server { listen 443 ssl; server_name eapa.test.com; ssl_certificate /data/server/nginx/nginx1.7/ssl/cert.pem; ssl_certificate_key /data/server/nginx/nginx1.7/ssl/privkey.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location ~ /.well-known { access_log logs/eapa_access.log main; root html; index index.html index.htm; } location ~ / { access_log logs/eapa_access.log main; root html; index index.html index.htm; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_pass http://eapa; proxy_redirect http:// $scheme://; //(解決:springmvc redirect後https變成http) }
訪問:https://eapa.test.com就可以看到成功了. (注意: 該網域名稱是假網域名稱)
最後, 因為認證有效期間三個月, 你可以手動或者寫個cron自動更新認證通過下面命令:
[[email protected] ssl]$ ./certbot-auto renewRequesting root privileges to run certbot... /home/yi_liu/.local/share/letsencrypt/bin/letsencrypt renewSaving debug log to /var/log/letsencrypt/letsencrypt.log-------------------------------------------------------------------------------Processing /etc/letsencrypt/renewal/eapa.tclclouds.com.conf-------------------------------------------------------------------------------Cert not yet due for renewalThe following certs are not due for renewal yet: /etc/letsencrypt/live/eapa.tclclouds.com/fullchain.pem (skipped)No renewals were attempted.
效果如:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/8A/E7/wKiom1g-ibGgcqqoAACBwwgvA9w469.jpg-wh_500x0-wm_3-wmp_4-s_3789403242.jpg" title="QQ20161130160855.jpg" alt="wKiom1g-ibGgcqqoAACBwwgvA9w469.jpg-wh_50" />
參考文檔:
https://letsencrypt.org/docs/
https://certbot.eff.org/all-instructions/#centos-6-nginx
https://certbot.eff.org/docs/using.html#webroot
本文出自 “謙受益” 部落格,請務必保留此出處http://ganludong.blog.51cto.com/801200/1878160
如何免費把網站從http升級到https