1.思路

nginx配置https访问后将请求转发到目标http服务

2.生成ssl证书

(1) 创建配置文件 myssl.conf

# 定义输入用户信息选项的"特征名称"字段名,该扩展字段定义了多项用户信息。distinguished_name = req_distinguished_name# 生成自签名证书时要使用的证书扩展项字段名,该扩展字段定义了要加入到证书中的一系列扩展项。x509_extensions = v3_req# 如果设为no,那么 req 指令将直接从配置文件中读取证书字段的信息,而不提示用户输入。prompt = no[req_distinguished_name]#国家代码,一般都是CN(大写)C = CN#省份ST = gd#城市L = gz#企业/单位名称O = echohye#企业部门OU = echohye#证书的主域名CN = 192.168.11.111##### 要加入到证书请求中的一系列扩展项 #####[v3_req]keyUsage = critical, digitalSignature, keyAgreementextendedKeyUsage = serverAuthsubjectAltName = @alt_names[ alt_names ]IP.1 = 192.168.11.111# IP.2 = 192.168.11.222

(2)生成证书命令

openssl myssl -x509 -nodes -days 3650 -newkey rsa:2048 -keyout server.key -out server.crt -config req.cnf -sha256

3.nginx配置

server {listen 80;listen443 ssl;server_namelocalhost;ssl_certificatessl/server.pem;ssl_certificate_keyssl/server.key;ssl_session_cacheshared:SSL:1m;ssl_session_timeout5m;ssl_ciphersHIGH:!aNULL:!MD5;ssl_prefer_server_cipherson;#access_log/var/log/nginx/host.access.logmain;location / {proxy_pass http://xxxxx:xxx;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}

跨域参考: https://www.jianshu.com/p/2de4e37a2e03