
nginx https和七层代理配置
1.HTTPS证书本地制作
HTTPS注意事项
- Https不支持续费,证书到期需重新申请新并进行替换.
- Https不支持三级域名解析, 如test.m.oldboy.com
- Https显示绿色, 说明整个网站的URL都是https的。
- Https显示黄色, 因为网站代码中包含http的不安全连接。
- Https显示红色, 要么证书是假的,要么证书过期。
配置苹果要求的证书
- 1.服务器所有连接使用TLS1.2以上版本(openssl 1.0.2)
- 2.HTTPS证书必须使用SHA256以上哈希算法签名
- 3.HTTPS证书必须使用RSA 2048位或ECC256位以上公钥算法
秘钥生成操作步骤
- 1.生成key密钥
- 2.生成证书签名请求文件(csr文件)
- 3.生成证书签名文件(CA文件)
1.环境准备
//openssl必须是1.0.2 [root@Nginx ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 //nginx必须有ssl模块 [root@Nginx ~]# nginx -V --with-http_ssl_module [root@Nginx ~]# mkdir /etc/nginx/ssl_key -p [root@Nginx ~]# cd /etc/nginx/ssl_key2.使用openssl充当CA权威机构创建私钥(生产不可能使用此方式生成证书,不被互联网CA权威承认的黑户证书)
[root@Nginx ssh_key]# openssl genrsa -idea -out server.key 2048 Generating RSA private key, 2048 bit long modulus .....+++ //记住配置密码, 我这里是1234 Enter pass phrase for server.key: Verifying - Enter pass phrase for server.key:3.生成自签证书,同时去掉私钥的密码
[root@Nginx ssl_key]# openssl req -days 36500 -x509 \ -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:WH Locality Name (eg, city) [Default City]:WH Organization Name (eg, company) [Default Company Ltd]:edu Organizational Unit Name (eg, section) []:SA Common Name (eg, your name or your server's hostname) []:bgx Email Address []:[email protected] # req -->用于创建新的证书 # new -->表示创建的是新证书 # x509 -->表示定义证书的格式为标准格式 # key -->表示调用的私钥文件信息 # out -->表示输出证书文件信息 # days -->表示证书的有效期
2.http请求强制跳转https
以上配置如果用户忘记在浏览器地址栏输入https://那么将不会跳转至https, 那么需要配置将用户访问http请求强制跳转https
server { listen 80; server_name bgx.com; rewrite ^(.*) https://$server_name$1 redirect; #return 302 https://$server_name$request_uri; }检查是否支持苹果要求ATS协议
//仅能在苹果终端上使用 $ nscurl --ats-diagnostics --verbose https://192.168.69.113