1. 程式人生 > >windwos下Nginx配置https

windwos下Nginx配置https

Windwos下配置https


1. 安裝Openssl


  下載地址:http://slproweb.com/products/Win32OpenSSL.html (根據系統選擇32位或者64位版本下載安裝)。
    我安裝在C:\wnmp\OpenSSL-Win64

2. 配置環境變數


  在環境變數中新增環境變數


    變數名: OPENSSL_HOME            變數值:C:\wnmp\OpenSSL-Win64\bin;        (變數值為openssl安裝位置)


    在path變數結尾新增如下 : %OPENSSL_HOME%;
3.下載Nginx並解壓 


    我的目錄在C:\Users\Admin\Desktop\nginx\nginx


3. 生成證書   


  (1) 首先在 nginx安裝目錄中建立ssl資料夾用於存放證書。比如我的檔案目錄為 C:\Users\Admin\Desktop\nginx\nginx\ssl


     以管理員身份進入命令列模式,進入ssl資料夾。 命令為: cd  C:\Users\Admin\Desktop\nginx\nginx\ssl


  (2) 建立私鑰


     在命令列中執行命令: openssl genrsa -des3 -out lee.key 1024     (lee檔名可以自定義)


 輸入密碼後,再次重複輸入確認密碼。記住此密碼,後面會用到。
 
    (3)建立csr證書


     在命令列中執行命令:  openssl req -new -key lee.key -out lee.csr    (key檔案為剛才生成的檔案,lee為自定義檔名)


          執行上述命令後,需要輸入資訊。輸入的資訊中最重要的為 Common Name,這裡輸入的域名即為我們要使用https訪問的域名  我輸入的是localhost
 
 以上步驟完成後,ssl資料夾內出現兩個檔案  lee.csr   lee.key
 
    (4)去除密碼。


     在載入SSL支援的Nginx並使用上述私鑰時除去必須的口令,否則會在啟動nginx的時候需要輸入密碼。


     複製lee.key並重命名為lee.key.org 


去除口令,在命令列中執行此命令:  openssl rsa -in lee.key.org -out lee.key  (lee為自定義檔名)  然後輸入密碼
 
    (5)生成crt證書


     在命令列中執行此命令: openssl x509 -req -days 365 -in lee.csr -signkey lee.key -out lee.crt  (lee為自定義檔名)


 證書生成完畢,ssl資料夾中一共生成如下4個檔案,我們需要使用到的是lee.crt和lee.key。
 
4.修改Nginx的nginx.conf檔案  我的在C:\Users\Admin\Desktop\nginx\nginx\conf\nginx.conf


    把前面的#去掉 然後修改
server {
        listen       443 ssl;
        server_name  localhost;


        ssl_certificate      C://Users//Admin//Desktop//nginx//nginx//ssl//lee.crt; //這個是證書的crt檔案所在目錄
        ssl_certificate_key  C://Users//Admin//Desktop//nginx//nginx//ssl//lee.key;  //這個是證書key檔案所在目錄


        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;


        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;


        location / {
            root   C://Users//Admin//Desktop//artbag-1-5//artbag-1-5;  //這個是指定一個專案所在目錄  靜態頁面也可以
            index  index.html index.htm;  //這個是指定首頁的檔案  一般靜態頁面 預設的都是index.html
}

}