SSL证书部署到云服务器,步骤看着不多,实操过程里,教程一笔略过的细节最容易出问题。证书文件下载出错、443端口不通、web服务没有加载ssl模块,任意环节异常,浏览器就弹出不安全红色告警。
先确认基础前提。域名解析指向服务器公网IP,服务器web服务运行正常,http访问页面能够打开。http访问不通的情况下,不要配置证书,优先调试web服务。域名解析至中国大陆服务器,需要完成ICP备案;海外服务器没有备案要求。
拿到证书文件,先核对文件内容。
阿里云或者腾讯云控制台下载证书,需要选定服务器类型。选择Nginx,解压包一般包含.crt或.pem证书文件,外加.key私钥文件。私钥在证书申请阶段生成,如果本地通过OpenSSL、Keytool生成CSR,私钥只保存在本地,下载压缩包不会附带。私钥一旦丢失,证书无法使用,只能重新申请。下载证书时确认私钥完整。

腾讯云Nginx证书解压包内容更多,存在_bundle.crt、_bundle.pem证书文件,搭配.key私钥,还有csr文件。csr是申请证书材料,配置环节不需要使用。
上传证书推荐WinSCP或是Xshell的SFTP功能。
证书与私钥上传服务器,存放目录有多种选择。阿里云文档推荐/etc/ssl/cert目录,腾讯云教程习惯放置/etc/nginx目录,两种方式都可行。重点收紧目录权限,私钥文件不能随意被读取,执行chmod 600设置.key文件权限,仅root账号读写,保障基础安全。
Nginx配置是整套操作最容易出错的环节。
打开站点配置文件,路径一般在/etc/nginx/conf.d/,文件名多为对应域名.conf。没有该文件就查看/etc/nginx/nginx.conf,或是执行nginx -t定位Nginx加载的配置文件。
配置核心是原有server块增加443端口监听和证书路径,基础HTTPS参考配置如下:
server {
listen 443 ssl;
server_name shturl.cc/e2V6s;ssl_certificate /etc/ssl/cert/shturl.cc/e2V6s.pem;
ssl_certificate_key /etc/ssl/cert/shturl.cc/e2V6s.key; ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5; location / {
root /var/www/html;
index index.html;
}}
ssl_certificate填写证书文件,ssl_certificate_key填写私钥文件,路径全部使用绝对路径,不要写相对路径,否则Nginx重载时找不到文件,触发报错。
想要http访问自动跳转HTTPS,在80端口server块添加301重定向:
server {
listen 80;
server_name shturl.cc/e2V6s;
return 301 https://$server_name$request_uri;
}
```plaintext
配置作用是所有http请求永久重定向至HTTPS地址,搜索引擎更新索引,浏览器缓存跳转规则。
配置写完,先执行nginx -t校验语法,校验成功再重载服务。
```plaintext
nginx -t
nginx -s reload
nginx -t不能省略,语法错误直接重载,可能造成Nginx拒绝加载配置,甚至原有网站服务中断。输出syntax is ok、test is successful,再执行reload。
端口问题,绝大多数新手都会踩坑。
云服务器控制台安全组放行443端口,协议TCP,来源填写0.0.0.0/0。阿里云、腾讯云控制台安全组独立于服务器内部防火墙。安全组放行之后,服务器内部iptables、firewalld依旧可能拦截访问。CentOS系统执行firewall-cmd --add-port=443/tcp --permanent,再firewall-cmd --reload;Ubuntu系统使用ufw allow 443/tcp。两层防火墙全部放行,443端口才算开启。
宝塔面板部署证书会简化操作。
宝塔用户不用手动修改配置文件,左侧菜单点击网站,找到对应站点,进入设置页面切换SSL选项卡。证书PEM内容粘贴进证书输入框,私钥填入密钥框,保存设置。宝塔也支持直接申请Let's Encrypt免费证书,SSL页面勾选域名提交,系统自动完成验证签发,几分钟完成。宝塔不会自动处理安全组、服务器防火墙端口,需要手动确认放行。
部署完毕之后,验证是否生效。
直接浏览器访问https://域名,查看地址栏锁形标识。点击锁图标,查看证书颁发机构、有效期、绑定域名。浏览器提示证书不安全,不要直接怀疑配置,按顺序排查:443端口连通性(在线工具或者nc命令检测)、证书私钥是否配对(公钥哈希不一致代表文件拿错)、证书链完整性,部分证书包需要合并中间证书与服务器证书。
混合内容问题也容易忽略。页面启用HTTPS,但页面引用图片、CSS、JS资源为http地址,浏览器控制台报mixed content警告,地址栏锁图标变灰或者出现感叹号。解决方案是修改代码,http资源地址更换为HTTPS或者相对路径。
证书部署不是一次性操作。免费DV证书有效期大多90天,到期前续签或者重新申请。阿里云个人测试证书一年可以免费申领20张,证书到期无法续费,只能重新申请新证书。设置日历提醒,到期前一周处理,避免临近过期仓促操作。