Windows 下 Nginx 配置 SSL 實現(xiàn) Https 訪問(包含證書生成)

說明:此教程適合已經(jīng)配置好 WNMP 環(huán)境娩嚼。

實現(xiàn) Https 首先需要向管理機構(gòu)申請證書凯正,而我們此次由于是練習(xí)目的终惑,所以通過 Openssl 自己生成證書刑棵。首先我們需要用到生成證書的 Openssl 軟件。

1. 安裝 Openssl

下載地址:http://slproweb.com/products/Win32OpenSSL.html (根據(jù)系統(tǒng)選擇 32 位或者 64 位版本下載安裝)涵紊。

下載完成后傍妒,進(jìn)行安裝,我安裝在了 C:\wnmp\OpenSSL-Win64 文件夾中摸柄。

2. 安裝 ActivePerl (此軟件目的為了解析 pl 文件颤练,部分系統(tǒng)不安裝也可以實現(xiàn)本教程的功能,安裝該軟件目的為了學(xué)習(xí) perl)驱负。

下載地址:http://www.activestate.com/activeperl/downloads/ (根據(jù)系統(tǒng)選擇 win32 或者 win64 版本下載安裝)嗦玖。

3. 配置環(huán)境變量

在環(huán)境變量中添加環(huán)境變量
 
在 path 變量結(jié)尾添加如下 :C:\wnmp\OpenSSL-Win64\bin;

4 生成證書

(1) 首先在 nginx 安裝目錄中創(chuàng)建 ssl 文件夾用于存放證書。比如我的文件目錄為 C:\wnmp\nginx\ssl 以管理員身份進(jìn)入命令行模式跃脊,進(jìn)入 ssl 文件夾宇挫。 命令為: cd c:/wnmp/nginx/ssl

(2) 創(chuàng)建私鑰

在命令行中執(zhí)行命令: openssl genrsa -des3 -out lee.key 1024 (lee 文件名可以自定義),如下圖所示:

image

輸入密碼后酪术,再次重復(fù)輸入確認(rèn)密碼器瘪。記住此密碼,后面會用到绘雁。

(3)創(chuàng)建 csr 證書

在命令行中執(zhí)行命令: openssl req -new -key lee.key -out lee.csr (key 文件為剛才生成的文件橡疼,lee 為自定義文件名)

image

如上圖所示,執(zhí)行上述命令后庐舟,需要輸入信息欣除。輸入的信息中最重要的為 Common Name,這里輸入的域名即為我們要使用 https 訪問的域名挪略。

以上步驟完成后历帚,ssl 文件夾內(nèi)出現(xiàn)兩個文件:
image

(4)去除密碼。

在加載 SSL 支持的 Nginx 并使用上述私鑰時除去必須的口令杠娱,否則會在啟動 nginx 的時候需要輸入密碼挽牢。

復(fù)制 lee.key 并重命名為 lee.key.org

可以使用此命令行,也可以使用鼠標(biāo)操作 copy lee.key lee.key.org

去除口令墨辛,在命令行中執(zhí)行此命令: **openssl rsa -in lee.key.org -out lee.key **(lee 為自定義文件名)

如下圖所示卓研,此命令需要輸入剛才設(shè)置的密碼。

image

(5)生成 crt 證書

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

image

證書生成完畢,ssl 文件夾中一共生成如下 4 個文件奏赘,我們需要使用到的是 lee.crt 和 lee.key寥闪。

image

5. 修改 nginx.conf 文件

nginx.conf 文件位于:C:\wnmp\nginx\conf

找到該文件中如下代碼的位置進(jìn)行修改:

    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

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

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

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

修改為:

# HTTPS server
#
#modify by lee 20160907 for https -s 
    server {
        listen       443 ssl;
        server_name    www.lee.com;

        ssl_certificate      C:/wnmp/nginx/ssl/lee.crt;
        ssl_certificate_key  C:/wnmp/nginx/ssl/lee.key;

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

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

        location / {
            root   C:/wnmp/lee;
            index  index.html index.htm index.php;
        }

               root           C:/wnmp/lee;
               fastcgi_pass   127.0.0.1:9001;
               fastcgi_index  index.php;
               fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
               include        fastcgi_params;
        }
    }
#modify by lee 20160907 for https -s 

重啟 nginx。

在瀏覽器中磨淌,訪問 https://www.lee.com疲憋。發(fā)現(xiàn)出現(xiàn)證書認(rèn)證,并能夠成功訪問梁只。(www.lee.com 為生成證書時缚柳,Common Name 輸入的域名)

(執(zhí)行此步驟時,需要配置好 Virtual Host搪锣,并且在 www.lee.com 開放目錄中添加了 index.php 默認(rèn)入口訪問文件秋忙。)

image

上面的 https 被紅色劃線是因為我們使用的是自己生成的證書,此證書不受瀏覽器信任构舟,如果想使其變?yōu)榫G色灰追,則需要向證書管理機構(gòu)進(jìn)行申請。

6. 添加重定向狗超,自動跳轉(zhuǎn)使用 https琐凭。

在 nginx.conf 中 virtual host 中如下代碼位置添加一行代碼:

listen       80;                    
    server_name   www.lee.com;                    
#modify by lee 20160907 for https Redirect -s                        
    rewrite ^(.*) https://$server_name$1 permanent;                    
#modify by lee 20160907 for https Redirect -e

重啟 nginx算芯。

訪問 www.lee.com囱嫩,會發(fā)現(xiàn)瀏覽器自動跳轉(zhuǎn)到 https://www.lee.com沾谓,并能夠成功訪問。

至此渗稍,https 訪問配置成功完成佩迟。

附加配置

server {
    listen       80;
    # http 自動轉(zhuǎn)發(fā)給 https
    rewrite ^(.*) https://$server_name$1 permanent;
    ssl_certificate      D:/phpStudy/PHPTutorial/nginx/ssl/aijia.crt;
    ssl_certificate_key  D:/phpStudy/PHPTutorial/nginx/ssl/aijia.key;
    server_name  aijia.test ;
    root   "D:\phpStudy\PHPTutorial\WWW\aijia";
    location / {
        index  index.html index.htm index.php;
        if (!-e $request_filename) {
            rewrite  ^/(.*)$ /index.php?s=$1  last;
            break;
        }         
        #autoindex  on;
    }
    location ~ \.php(.*)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
}

server {
    listen       443 ssl;
    ssl_certificate      D:/phpStudy/PHPTutorial/nginx/ssl/aijia.crt;
    ssl_certificate_key  D:/phpStudy/PHPTutorial/nginx/ssl/aijia.key;
    server_name  aijia.test ;
    root   "D:\phpStudy\PHPTutorial\WWW\aijia";
    location / {
        index  index.html index.htm index.php;
        if (!-e $request_filename) {
            rewrite  ^/(.*)$ /index.php?s=$1  last;
            break;
        }         
        #autoindex  on;
    }
    location ~ \.php(.*)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市免胃,隨后出現(xiàn)的幾起案子音五,更是在濱河造成了極大的恐慌,老刑警劉巖羔沙,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厨钻,居然都是意外死亡扼雏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門夯膀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诗充,“玉大人,你說我怎么就攤上這事诱建『眩” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茎匠。 經(jīng)常有香客問我格仲,道長,這世上最難降的妖魔是什么诵冒? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任凯肋,我火速辦了婚禮,結(jié)果婚禮上汽馋,老公的妹妹穿的比我還像新娘侮东。我一直安慰自己,他們只是感情好豹芯,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布悄雅。 她就那樣靜靜地躺著,像睡著了一般铁蹈。 火紅的嫁衣襯著肌膚如雪煤伟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天木缝,我揣著相機與錄音便锨,去河邊找鬼。 笑死我碟,一個胖子當(dāng)著我的面吹牛放案,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矫俺,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼吱殉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了厘托?” 一聲冷哼從身側(cè)響起友雳,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铅匹,沒想到半個月后押赊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡包斑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年流礁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罗丰。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡神帅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萌抵,到底是詐尸還是另有隱情找御,我是刑警寧澤元镀,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站霎桅,受9級特大地震影響栖疑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哆档,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一蔽挠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓜浸,春花似錦澳淑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雇寇,卻和暖如春氢拥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锨侯。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工嫩海, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囚痴。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓叁怪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親深滚。 傳聞我的和親對象是個殘疾皇子奕谭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容