nginx配置https访问后将请求转发到目标http服务
(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, keyAgreement extendedKeyUsage = serverAuth subjectAltName = @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
server { listen 80; listen 443 ssl; server_name localhost; ssl_certificate ssl/server.pem; ssl_certificate_key ssl/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #access_log /var/log/nginx/host.access.log main; 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