Nginx详解二十一:Nginx深度学习篇之配置苹果要求的openssl后台HTTPS服务
配置苹果要求的证书:
1、服务器所有的连接使用TLS1.2以上的版本(openssl 1.0.2)
2、HTTPS证书必须使用SHA256以上哈希算法签名
3、HTTPS证书必须使用RSA2048位或ECC256位以上公钥算法
4、使用前向加密技术
首先看openssl版本:openssl version,为1.0.1,需要升级
查看当前使用的自签算法类型:openssl x509 -noout -text -in ./jesonc.crt,使用的是sha1,位数是1024位,都不符合规定
升级openssl,使用shell脚本升级
#!/bin/sh
#jeson@imoocc.com
cd /opt/download
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config --prefix=/usr/local/openssl
make && make install
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
ldconfig -v
openssl version -a
执行脚本
版本升级成功
修改算法:openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout jesonc_apple.crt
还是和之前一样输入相应的信息
修改配置文件
server
{
listen 443;
server_name 116.62.103.228 jeson.t.imooc.io;
keepalive_timeout 100;
ssl on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
#ssl_certificate /etc/nginx/ssl_key/jesonc.crt;
ssl_certificate /etc/nginx/ssl_key/jesonc_apple.crt;
ssl_certificate_key /etc/nginx/ssl_key/jesonc.key;
#ssl_certificate_key /etc/nginx/ssl_key/jesonc_nopass.key;
index index.html index.htm;
location / {
root /opt/app/code;
}
}
检查配置语法,并重载
nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf
查看443端口是否启动
浏览器访问,这个证书就是苹果要求的类型