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