阿里云ECS服务器HTTPS改造完整实操:SSL证书申请、Nginx/Apache部署全站加密保姆教程

简介: 互联网环境中,HTTP明文传输的数据极易被窃听、篡改、劫持,HTTPS依靠SSL/TLS协议对传输链路做加密保护,已经成为网站的基础标配。启用HTTPS不仅能够保护用户账号、表单提交等敏感数据,同时对站点权重、浏览器信任标识也会带来正向增益。很多个人开发者、中小企业运维人员,面对证书申请、服务器配置、全站跳转、混合内容报错等环节经常踩坑。本文从改造前置条件、安全组端口放行、证书选型申领、证书上传、Nginx、Apache两种主流Web服务器完整配置,再到验证测试、混合内容修复、安全加固、故障排查,提供完整实操步骤,附带可直接复制的命令与配置片段,帮助零基础使用者完成ECS站点全站HTTPS改造

互联网环境中,HTTP明文传输的数据极易被窃听、篡改、劫持,HTTPS依靠SSL/TLS协议对传输链路做加密保护,已经成为网站的基础标配。启用HTTPS不仅能够保护用户账号、表单提交等敏感数据,同时对站点权重、浏览器信任标识也会带来正向增益。很多个人开发者、中小企业运维人员,面对证书申请、服务器配置、全站跳转、混合内容报错等环节经常踩坑。本文从改造前置条件、安全组端口放行、证书选型申领、证书上传、Nginx、Apache两种主流Web服务器完整配置,再到验证测试、混合内容修复、安全加固、故障排查,提供完整实操步骤,附带可直接复制的命令与配置片段,帮助零基础使用者完成ECS站点全站HTTPS改造。详情👉访问阿里云 数字证书管理服务(原SSL证书) 平台了解。

一、HTTPS改造前置准备与端口配置

正式改造之前,需要核对基础条件,避免后续部署反复报错。

  1. 拥有已经完成ICP备案的域名,内地ECS实例对外Web服务,域名必须完成备案;海外实例可豁免备案。
  2. ECS实例正常运行,Nginx或者Apache Web服务已经部署完成,原HTTP站点访问正常。
  3. 账号完成实名认证,免费证书无需付费,商用OV/EV证书需要支付对应服务费用。
  4. ECS安全组需要放行80(HTTP)、443(HTTPS)TCP端口。

ECS控制台进入实例对应的安全组,配置入方向规则:

  • 协议:TCP
  • 端口范围:443/443,来源设置0.0.0.0/0,备注填写HTTPS访问。
  • 确认80端口入方向规则已经存在,用于HTTP跳转HTTPS。

提示:服务器内部firewalld、ufw操作系统防火墙同样需要放行80、443端口,否则即便安全组放行依旧无法访问。CentOS放行端口命令示例:

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

二、SSL证书选型以及申请流程

数字证书管理服务提供多类型SSL证书,不同证书适配不同业务规模。详情👉访问阿里云 数字证书管理服务(原SSL证书) 平台了解。

  • 免费DV域名验证证书:适合个人博客、小型测试站点,仅支持单域名,有效期90天,每年有免费申领额度,自动域名验证,数分钟即可签发。
  • 付费DV证书:支持单域名、多域名、通配符域名,有效期最长两年,自动域名校验,适合中小企业官网。
  • OV企业证书:企业身份人工审核,适合正规企业对外站点。
  • EV增强证书:最高等级企业证书,浏览器地址栏展示企业绿色标识,适合金融、交易等高安全要求业务。

2.1 免费DV证书申请

登录控制台,搜索数字证书管理服务,进入SSL证书管理页面。选择免费证书页签,点击创建证书,选择快捷签发,填写需要保护的域名,填写联系邮箱与手机号。

域名验证分为两种方式:

  1. 自动DNS验证(推荐):域名解析在同一平台,系统自动添加TXT解析记录,无需手动操作。
  2. 文件验证:把平台提供的验证文件上传到网站根目录.well‑known/pki‑validation路径,CA机构访问该文件完成所有权校验。

提交等待审核,DV证书一般1‑15分钟签发,状态变更为已签发,就可以下载证书压缩包。下载的时候,根据Web服务器类型选择Nginx或者Apache版本,解压之后得到证书pem/crt文件和私钥key文件,私钥key文件需要严格保密,禁止对外泄露

2.2 付费证书申请

控制台点击购买证书,选择DV/OV/EV证书,选择域名类型单域名、通配符,完成支付。进入证书列表点击申请,填写域名、企业资料,OV/EV证书需要提交营业执照材料,完成域名以及企业身份审核,审核通过之后下载对应服务器格式证书包。

三、证书上传至ECS服务器

把本地解压后的证书文件上传到ECS服务器,建议存放到专门ssl目录,不要放置网站根目录,防止被外网访问下载私钥。

Nginx服务器创建存放目录:

sudo mkdir -p /etc/nginx/ssl

Apache服务器创建存放目录:

sudo mkdir -p /etc/httpd/ssl

本地电脑scp上传证书,替换IP、本地文件路径:

#上传证书pem文件
scp /本地目录/www.example.com.pem root@ECS公网IP:/etc/nginx/ssl/
#上传私钥key文件
scp /本地目录/www.example.com.key root@ECS公网IP:/etc/nginx/ssl/

上传完成修改文件权限,私钥文件权限必须严格限制,防止其他用户读取:

sudo chmod 600 /etc/nginx/ssl/www.example.com.key
sudo chown root:root /etc/nginx/ssl/www.example.com.key

Apache环境路径为/etc/httpd/ssl/,对应修改路径执行权限命令。

四、Nginx服务器完整HTTPS配置

编辑Nginx站点配置文件,一般路径/etc/nginx/conf.d/域名.conf

sudo vim /etc/nginx/conf.d/www.example.com.conf

增加443端口HTTPS服务块,配置证书、TLS协议、加密套件、HSTS头:

server {
    listen 443 ssl;
    server_name www.example.com;

    #证书路径
    ssl_certificate /etc/nginx/ssl/www.example.com.pem;
    ssl_certificate_key /etc/nginx/ssl/www.example.com.key;

    #安全协议套件,禁用老旧不安全协议
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE‑RSA‑AES128‑GCM‑SHA256:ECDHE‑RSA‑AES256‑GCM‑SHA384:ECDHE‑ECDSA‑AES128‑GCM‑SHA256;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    #OCSP Stapling优化证书校验速度
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/nginx/ssl/www.example.com.pem;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    #HSTS强制浏览器使用HTTPS访问
    add_header Strict‑Transport‑Security "max‑age=31536000; includeSubDomains" always;

    root /usr/share/nginx/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

#80端口全部301永久重定向HTTPS
server {
    listen 80;
    server_name www.example.com;
    return 301 https://$host$request_uri;
}

配置完成,校验Nginx配置语法是否错误:

sudo nginx -t

输出test is successful代表语法无问题,重载配置,不中断线上业务:

sudo nginx -s reload

五、Apache服务器HTTPS完整配置

CentOS/RHEL系统安装ssl模块:

sudo yum install mod_ssl -y

Ubuntu/Debian系统:

sudo apt install apache2 -y

编辑ssl站点配置文件,CentOS路径/etc/httpd/conf.d/ssl.conf

sudo vim /etc/httpd/conf.d/ssl.conf

443端口虚拟主机配置内容:

<VirtualHost *:443>
 ServerName www.example.com
 DocumentRoot "/var/www/html"

 SSLEngine on
 SSLCertificateFile /etc/httpd/ssl/www.example.com.crt
 SSLCertificateKeyFile /etc/httpd/ssl/www.example.com.key
 SSLCertificateChainFile /etc/httpd/ssl/www.example.com.pem

 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
 SSLHonorCipherOrder on

 Header always set Strict‑Transport‑Security "max‑age=31536000; includeSubDomains"

 <Directory "/var/www/html">
     AllowOverride All
     Require all granted
 </Directory>
</VirtualHost>

新增80端口配置,实现HTTP跳转HTTPS:

<VirtualHost *:80>
 ServerName www.example.com
 Redirect permanent / https://www.example.com/
</VirtualHost>

校验Apache配置语法:

#CentOS
sudo apachectl configtest
#Ubuntu
sudo apache2ctl configtest

重启Apache服务使配置生效:

#CentOS
sudo systemctl restart httpd
#Ubuntu
sudo systemctl restart apache2

六、HTTPS部署验证与全站混合内容修复

6.1 多途径验证部署结果

浏览器访问https://域名,地址栏出现安全小锁标识代表基础部署成功。

命令行方式检测端口监听与证书信息:

#查看443端口监听状态
sudo netstat -tuln | grep 443
#openssl工具查看证书详情
openssl s_client -connect www.example.com:443

6.2 混合内容Mixed‑Content问题处理

HTTPS页面加载HTTP协议的图片、JS、CSS资源,浏览器会标记不安全,部分脚本会被浏览器直接拦截,也就是混合内容问题。详情👉访问阿里云 数字证书管理服务(原SSL证书) 平台了解。

解决手段分为三类:

  1. 修改业务代码,页面内资源链接把http://改为https://,或者使用相对协议//资源地址自动适配访问协议。
  2. Nginx增加sub_filter配置,在反向代理层面自动替换页面内http链接。
sub_filter 'http://www.example.com' 'https://www.example.com';
sub_filter_once off;
  1. 配置CSP内容安全策略头,限制只允许HTTPS来源资源加载。

排查方式:浏览器F12打开开发者工具,切换Console控制台,可以看到混合内容报错,定位具体资源URL。

七、安全加固要点

  1. 协议层面:仅保留TLSv1.2、TLSv1.3,彻底禁用老旧SSLv2、SSLv3、TLSv1、TLSv1.1。
  2. 开启HSTS响应头,防止用户被劫持跳转到HTTP页面。
  3. 开启OCSP Stapling,加速证书吊销状态校验。
  4. 证书有效期监控:免费DV证书有效期仅90天,必须在到期前重新申请并且更新服务器证书文件,证书过期站点浏览器直接报不安全警告。
  5. 私钥文件权限严格控制,禁止对外泄露私钥内容。

八、高频故障排查

故障1:访问https域名无法连接

排查顺序:确认ECS安全组443端口放行;操作系统防火墙开放443;Nginx/Apache服务正常运行;证书文件路径、文件名没有写错;私钥文件权限配置正确。

故障2:浏览器提示证书不安全

排查证书是否已经签发、没有过期;证书绑定域名和访问域名保持一致;确认完整证书链文件已经配置;清除浏览器缓存,无痕模式重新访问页面。

故障3:HTTP访问不会自动跳转HTTPS

确认安全组80端口开放;检查80端口server块重定向配置;Web服务配置重载成功;清除浏览器缓存测试。

故障4:页面样式错乱,图片不加载

大概率混合内容问题,F12控制台查看报错,把页面中http资源链接替换为https,使用Nginx sub_filter辅助替换,或者配置CSP策略。

九、后续运维维护总结

HTTPS改造不是一次性工作,后续需要持续运维维护。免费证书90天到期,需要重新申请下载更新服务器证书,更新证书文件之后重载Web服务配置;定期使用在线SSL检测工具扫描站点TLS安全评分;持续关注页面混合内容,新业务上线的图片脚本资源不要硬编码HTTP链接;可以搭配WAF等安全产品进一步提升站点整体防护能力。

完成全站HTTPS加密改造,实现传输链路加密,规避中间人劫持风险,同时提升站点浏览器信任度,是现代Web站点必不可少的安全基础配置。

目录
相关文章
人工智能 缓存 前端开发
12684 74
|
5天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
Web App开发 人工智能 API
1595 2
|
人工智能 JavaScript 开发工具
DeepSeek Harness 本地安装与使用指南
DeepSeek Harness(DSH)是DeepSeek AI开源的Agent运行框架,支持本地文件操作、命令执行与工具调用。基于Cordis插件架构,具备高扩展性与强可控性,适合开发者搭建可控Agent环境或开展模型基准测试。当前为开发者预览版,需Node.js环境,推荐先用`npx @deepseek-ai/dsh web`快速体验。
4944 0
人工智能 Java BI
1697 1
人工智能 JavaScript 测试技术
2658 2
开发工具 Swift git
2013 6
人工智能 JavaScript 测试技术
1266 4

热门文章

最新文章