nginx服務器配置StartSSL證書
概述
ssl基礎
服務器操作系統:aliyun ubuntu 12.04
WEB服務器:nginx 1.4.x
免費ssl認證服務:startssl.
SSL/TLS協議運行機制的概述
百度百科解釋:
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。
詳情參見阮一峰老師的網絡日志
《 SSL/TLS協議運行機制的概述 》
StartSSL 介紹
StartSSL是StartCom公司旗下的SSL證書,貌似是現在唯一一家提供免費SSL證書服務并且被主流瀏覽器支持的免費SSL,包括Chrome、Firefox、IE等瀏覽器都可以正常識別StartSSL,任何個人都可以從StartSSL中申請到免費一年的SSL證書。StartSSL申請雖然要審核,但是一般十幾分鐘就會回復郵件了。而且經過部落的幾次申請測試發現,StartSSL申請審核并不嚴格,如果遇到問題,你只要回復一封郵件過去回答郵件當中所提的問題,通過率幾乎是100%。
使用StartSSL前必須先在自己的電腦上安裝StartSSL證書,這個證書就是你用來登錄和管理StartSSL申請到的SSL唯一憑證,沒有了這個憑證就無法對已經申請的SSL進行管理和續期了,只能重新申請一個了,所以需要特別保存好。
申請免費StartSSL登錄證書過程
-
打開網站以后找到Sign-up按鈕,果斷按下去,然后出來輸入你的個人資料的表單,進行提交。
-
所有的資料都最好使用正確的。因為注冊SSL是一件很嚴肅的事情。還有就是如果你的IP地址是在大陸,你輸入香港也是會被拒絕的。而且你的地址也是也是要詳細的。 按照表單寫完以后點擊Continue按鈕。然后你填寫的郵箱會收到一個驗證碼。
-
把驗證碼輸入到你的瀏覽器Code的框里,然后繼續。
-
然后再受到驗證郵箱的驗證碼,再輸入到瀏覽器中。然后等待驗證,他說了6個小時,其實一般一兩分鐘就會出結果。
-
通過驗證的郵件的URL,輸入到瀏覽器中進行下一步安裝證書。如果彈出的窗口依然還讓你輸入Code,那則輸入郵件下面鏈接的Code。 點擊Continue,接下來你的瀏覽器開始安裝私鑰,相當于建立用戶名密碼。
-
然后密鑰安裝成功以后提示你開始安裝證書。
-
證書安裝完畢以后會祝賀你。點擊完成。
-
然后會給你發郵件說你安裝好啦,可以使用了。
服務器生成證書
服務器需要openssl 支持,并安裝了nginx.
root@iZ238l3t:~# cd /etc/nginx/ root@iZ238l3t:~# mkdir ssl root@iZ238l3t:~# cd ssl root@iZ238l3t:~# openssl genrsa -out server.key 2048 root@iZ238l3t:~# openssl req -new -key server.key -out server.csr
查看/etc/nginx/ssl 目錄下將會生成兩個文件(server.key和 server.csr )
安裝提示輸入按在startssl中填寫的一樣就可以了。
先復制server.csr文件夾中的內容,會在接下來過程中需要。
Startssl 申請免費一年證書
驗證域名
在控制面板中Validations Wizard的選項卡中選擇Domain Name Validation,然后輸入你的域名。(這個驗證期30內有效)
接下來他會提示讓你選擇以下幾個郵箱中的任意一個來發送驗證碼,其中我選擇的郵箱是他根據Whois查到的管理郵箱。如果你不想使用管理員郵箱你可以建立一個他提示的郵箱。
然后把收到的驗證碼再輸入到Code框中,域名驗證完成。
申請免費一年域名證書
接下來申請域名SSL證書。點擊Certificates Wizard ,選擇下拉菜單中的Web Server
然后進入下一步他會問你驗證方式神馬的,我們都已經在VPS上設置過了,所以這里直接跳過。
然后在下面的網頁中輸入剛才server.csr中拷貝出來的一串字符。
然后提示你證書信息收集好了,點擊繼續。
系統提示你必須要選擇一個二級域名來進行,大家如果申請根域名就輸入www好了。
提示成功,返回一個讓你等待的網頁。接下來就是等待官方進行審核驗證,驗證后會發送成功或失敗的郵件到你的填寫的郵箱中。
導出證書
打開StartSSL控制面板,選擇導出證書。
將代碼拷貝出來。保存成.crt格式。
nginx配置ssl訪問
# HTTPS server # server { listen 443 ssl; server_name pass.test.com; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !EXPORT !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { root /mnt/web/ssl; index index.html index.htm; } }
重啟nginx
service nginx restart
訪問
訪問域名顯示工作正常。
參考:
How to Install Nginx and a StartSSL Certificate on Debian 7 (Wheezy)
Nginx上配置Startssl 免費SSL
http://blog.nicky1605.com/the-free-ssl-configuration-startssl-on-nginx.html