2024年10月

SSL 是安全套接层 (Secure Socket Layer) 的缩写形式。SSL证书具有两个主要功能,分别是身份验证和数据加密。SSL证书能够对企业或者网站的身份进行认证,当用户访问网站时,可以点击网站安全证书及信任签章了解网站的具体信息,辨别网站真伪。此外,SSL证书还能启用HTTPS加密,保护用户在您的网站上输入的个人信息,确保隐私敏感信息不被非法篡改,防止传输信息泄露。 CA机构是Certificate Authority的缩写,也就是证书颁发机构。由于CA是负责管理和签发数字证书的第三方机构,作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改。可以这样理解,CA机构也就类似于给公民颁发身份证的公安局。所以,不是所有的公司都可以称之为CA。目前权威的CA公司主要有CFCA, Sectigo, Geotrust, Digicert等。

2020年,CA/B论坛倡议将SSL证书的最长有效期将限制在一年。其后,多年CA机构遵循行业标准,在2020年8月底陆续将SSL证书有效期调整为398天。虽然SSL数字证书有效期缩短了,但是为了帮助用户减少证书中断、证书过期带来的风险,极云科技提供多年期SSL证书订阅模式,可支持1-6年SSL证书购买。多年SSL证书订阅有优惠,不仅降低企业成本,还能简化证书更新流程。 注:当订阅多年SSL证书后,我们将分批次发送一年有效期的SSL证书给用户,在证书到期之前,极云科技将提前为用户发送新的证书,用户只需更换即可。

阿里云安全组开放端口
阿里云安全组类似虚拟防火墙,默认只开放了22和3389端口

在阿里云服务器ECS控制台
左侧栏选择“实例”,找到需要开放端口的云服务器ECS实例,如果没有,记得切换左上角地域。

点“更多”–“网路和安全组”–“安全组配置”

在“配置规则”中,按照下图开放443端口
如下图:

端口号以开放443端口为例,在安全组规则的“入方向”,点击“手动添加”,规则如下:

端口范围目的:443/443
授权对象源:0.0.0.0/0
授权对象0.0.0.0/0是指授权给所有IP。上述规则的意思是,将云服务器8888端口,授权给所有IP使用。出于安全考虑,授权对象也可以填写IP段或者固定IP地址。

关于安全组参考文档:https://help.aliyun.com/document_detail/25471.html

1.合成Nginx所需的证书文件:

新建一个记事本文件,复制证书(.crt)内容到记事本的第一段,复制证书链(.ca)内容到第二段;(如下图)

然后保存,将记事本重命名为:你的域名_chain.com.crt(例如:sslsky.com_chain.crt);

如需要pem格式证书,可直接修改后缀为:你的域名_chain.com.pem

准备好以下文件:
sslsky.com_chain.crt (包含证书链的证书文件)
sslsky.com.key (私钥文件)

2.环境检测,检测命令如下(测试nginx是否支持SSL)

nginx -V
如果有显示 –with-http_ssl_module 表示已编译openssl,支持安装ssl

如果没有安装请下载nginx源码重新编译

./configure --with-http_stub_status_module --with-http_ssl_module
make && make install

3.配置Nginx

server {
listen 80;
listen 443 ssl;
server_name www.sslsky.com;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_certificate /etc/ssl/sslsky.com.crt;
ssl_certificate_key /etc/ssl/sslsky.com.key;
ssl_prefer_server_ciphers on;

自动跳转到HTTPS (可选)

if ($server_port = 80) {
rewrite ^(.*)$ https://$host$1 permanent;
}
location / {
root /home/sslsky/;
index index.php;
}
}
以上配置仅供参考,其他参数请根据生产环境需要添加。

4.安装后重启nginx使其生效

centos6
service nginx restart
centos7
systemctl restart nginx

问题排查:

如果使用CDN(加速器),需要在CDN上面安装证书,国内免费加速的都不支持https(已知阿里云cdn支持)

检查443端口是否启动 使用下面命令 netstat -apnt | grep 443 (如果没有启动检查配置文件或者端口是否冲突)

443端口如果已经启动,但不能访问,请检查防火墙(或者安全狗) ,允许443端口.

linux iptables使用下面命令:

iptables -A INPUT -p tcp -m tcp --dport https -j ACCEPT