nginx服務器配置StartSSL證書

jopen 8年前發布 | 12K 次閱讀 Web服務器 Nginx

概述

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登錄證書過程

  1. 打開網站以后找到Sign-up按鈕,果斷按下去,然后出來輸入你的個人資料的表單,進行提交。

  2. 所有的資料都最好使用正確的。因為注冊SSL是一件很嚴肅的事情。還有就是如果你的IP地址是在大陸,你輸入香港也是會被拒絕的。而且你的地址也是也是要詳細的。 按照表單寫完以后點擊Continue按鈕。然后你填寫的郵箱會收到一個驗證碼。

  3. 把驗證碼輸入到你的瀏覽器Code的框里,然后繼續。

  4. 然后再受到驗證郵箱的驗證碼,再輸入到瀏覽器中。然后等待驗證,他說了6個小時,其實一般一兩分鐘就會出結果。

  5. 通過驗證的郵件的URL,輸入到瀏覽器中進行下一步安裝證書。如果彈出的窗口依然還讓你輸入Code,那則輸入郵件下面鏈接的Code。 點擊Continue,接下來你的瀏覽器開始安裝私鑰,相當于建立用戶名密碼。

  6. 然后密鑰安裝成功以后提示你開始安裝證書。

  7. 證書安裝完畢以后會祝賀你。點擊完成。

  8. 然后會給你發郵件說你安裝好啦,可以使用了。

服務器生成證書

服務器需要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

訪問

訪問域名顯示工作正常。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!