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; }}

你可能感兴趣的:(Nginx)