命令记不住

登陆

https 证书制作和 nginx 强制 https

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_key

2.使用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
推荐阅读