1. 程式人生 > >nginx配置https證書

nginx配置https證書

因為最近我的ios司機們說要啟用https,不然應用要下架,直接一身冷汗出來了。
走了一些冤路,但最終結果是實現了,把相關的步聚記錄下來,希望對有需要的朋友有所幫助。

一、服務端生成金鑰

1、生成一個RSA金鑰
$ openssl genrsa -des3 -out api.xxx.key 2048

這裡寫圖片描述

2、拷貝一個不需要輸入密碼的金鑰檔案
$ openssl rsa -in api.xxx.key -out api.xxx_nopass.key
但這裡我最後寫nopass.key啟動還是報錯,又重新生成了一次,不知道為什麼。
這裡寫圖片描述

3、生成一個證書請求
$ openssl req -new -key api.xxx.key -out api.xxx.csr
www.startssl.com提供的執行命令是:
openssl req -newkey rsa:2048 -keyout api.xxx.key -out api.xxx.csr
這裡寫圖片描述

4、自己簽發證書——這一步應該由認證伺服器來處理
$ openssl x509 -req -days 365 -in api.xxx.csr -signkey api.xxx.key -out api.xxx.crt

二、第三方簽發證書(www.startssl.com例)

對於英盲很困難。。。。。。

1、驗證域名
這裡寫圖片描述

這裡寫圖片描述

由於域名已經認證過了,所以這裡就不作下一步操作了。主要是準備好跟域名一樣字尾的郵件就好了。

2、簽發證書
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

三、合併生成pem

cat api.xxx.crt api.xxx.key > api.xxx.pem

四、配置nginx

    server {
        listen       443 ssl;
        server_name  xxx.xxx.com.cn;

        ssl_certificate      /usr/local/nginx/ssl/xxd.pem;
        ssl_certificate_key  /usr/local/nginx/ssl/xxd.key;

        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers AESGCM:ALL
:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; }

啟動時報錯
這裡寫圖片描述

啟動時報錯,因為我先用的是nopass.key,最好先切換到初始化key裡面去啟動一下是否正常,如果正常在重新生成一下nopass.key證書,啟動nginx的時候免輸入密碼。