1. 程式人生 > >Nginx配置https並自簽名證書

Nginx配置https並自簽名證書

曾經iOS 為安全起見要求所有請求必須https,記錄專案中配置https過程。

# 生成一個RSA金鑰 
openssl genrsa -des3 -out xgj.key 1024
 
# 拷貝一個不需要輸入密碼的金鑰檔案
openssl rsa -in xgj.key -out xgj_nopass.key
 
# 生成一個證書請求
$ openssl req -new -key xgj.key -out xgj.csr

建立CA證書:
openssl req -new -x509 -key xgj.key -out ca.crt -days 3650
 
# 自己簽發證書
$ openssl x509 -req -days 3650 -in xgj.csr -signkey xgj.key -out xgj.crt
openssl x509 -req -days 3650 -in xgj.csr -CA ca.crt -CAkey xgj.key -CAcreateserial -out xgj.crt


在Nginx 配置證書檔案

Nginx conf檔案中配置
server {
    listen       83 default_server;
    server_name  localhost;   
    access_log  /data/logs/access.log  main;    

    ssl                  on;
    ssl_certificate      /etc/nginx/conf.d/xgj.crt;
    ssl_certificate_key  /etc/nginx/conf.d/xgj_nopass.key;
    #ssl_client_certificate  /etc/nginx/conf.d/ca.crt;#雙向認證
 #ssl_verify_client on; #雙向認證
location /api { proxy_pass http://127.0.0.1:189; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}