为什么SSL证书不能长期有效
关注SSL证书的朋友应该都知道SSL证书的有效期一直在缩短,从2018年3月1日起,SSL证书最长期限设置为825天,这一新规延续了不到两年,就在2020年2月苹果在CA/B论坛的会议上宣布,将不再信任2020年9月1日之后签发的有效期超过398天的SSL证书。随后,谷歌、火狐等浏览器厂商也表示遵循这一原则。
因此,各大证书颁发机构也纷纷宣布,2020年9月1日开始,将不再签发有效期超过398天的证书,证书的最长有效期将缩短为13个月。那么问题来了,为什么SSL证书不能长期有效呢?主要有以下几个原因:
1)不能保证一个合法网站永远不会成为一个钓鱼站点
2)永久有效的证书导致CRL不断增加,会增加浏览器的请求流量压力
3)有效期对保护证书安全性是基于PKI技术的数字证书,结合公钥加密算法、对称加密算法、散列算法等密码技术,用于实现认证、加密、签名等安全功能。
4)没有合理设置SSL证书有效期,会造成极大的安全威胁。自签名SSL证书为例,自签名SSL证书不受国际标准制约,可以把有效期设置为10年甚至20年。自签名证书长期未更新,仍在使用非常不安全的1024位RSA算法和SHA-1签名算法。超长的有效期和脆弱的加密算法,让黑客拥有足够的时间和算力破解证书的加密密钥,造成严重后果。
5)CA机构必须重新验证身份信息,确保身份认证信息是最新的,并仍然拥有该域名。
不听不听王八念经
,我就想一劳永逸,而且还想白嫖。
- 下面我们来申请SSL证书,如图:浏览器里输入
1.1.1.1
,把你的域名DNS管理,放到cloudflare
管理 - DNS 设置好后,代理状态: 黄色云朵点亮(已代理); 再点击蓝色
SSL/TLS
,选择源服务器
- 源证书: 生成由 Cloudflare 签名的免费 TLS 证书,以安装在源服务器上。源证书仅对 Cloudflare 与源服务器之间的加密有效。
- 点击
创建证书
,如图再点击右下角创建
,证书就完成了
- 如图,把证书文本分别复制和保存文件名为:
262235.xyz.pem
和262235.xyz.key
把SSL证书公钥和私钥 上传到服务器
/etc/nginx/cert/
,也可以直接在服务器上编辑vim /etc/nginx/cert/262235.xyz.pem vim /etc/nginx/cert/262235.xyz.key
添加配置
Nginx
服务器配置文件https.conf
内容server { listen 443 ssl default_server; listen [::]:443 ssl default_server; server_name us.262235.xyz; ssl_certificate cert/262235.xyz.pem; ssl_certificate_key cert/262235.xyz.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; root /var/www/html; index index.html index.php index.nginx-debian.html; location / { try_files $uri $uri/ =404; } # pass PHP scripts to FastCGI server location ~ .*\.php(\/.*)*$ { include snippets/fastcgi-php.conf; # fastcgi_pass 127.0.0.1:9000; # With php-fpm (or other unix sockets): fastcgi_pass unix:/run/php/php7.3-fpm.sock; } }
修改 Nginx
配置,测试 Nginx
配置和重启 Nginx
vim /etc/nginx/conf.d/https.conf
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx -s reload
2021/09/11 03:25:35 [notice] 559#559: signal process started