在网络安全日益重要的今天,HTTPS已成为网站标配。它通过SSL/TLS协议对数据传输进行加密,有效防止数据窃听、篡改与劫持,同时提升网站在搜索引擎中的排名与用户信任度。阿里云ECS服务器作为主流的云服务器选择,支持完整的HTTPS改造流程。本教程将从SSL证书申请、服务器部署、全站加密配置到安全优化,全程保姆级指导,让你零基础也能快速完成ECS服务器的HTTPS改造,实现全站安全访问。详情👉访问阿里云 数字证书管理服务(原SSL证书) 平台了解。
一、HTTPS改造前置准备
1.1 必备条件确认
在开始HTTPS改造前,需确保满足以下条件:
- 拥有已完成ICP备案的域名(内地服务器必须备案,海外服务器可豁免)。
- 拥有阿里云ECS服务器,且服务器已正常运行,Web服务(Nginx/Apache)已部署。
- 阿里云账号已完成实名认证,账户余额充足(免费证书无需付费,付费证书需支付对应费用)。
- 已在ECS安全组中放通80端口(HTTP)与443端口(HTTPS),确保端口可正常访问。
1.2 端口开放配置
HTTPS默认使用443端口,需在ECS安全组中配置入方向规则,允许所有IP访问443端口:
- 登录阿里云ECS控制台,进入目标实例的“安全组”页面。
- 点击“配置规则”,选择“入方向”,点击“添加安全组规则”。
- 协议选择“TCP”,端口范围输入“443/443”,来源选择“0.0.0.0/0”,描述填写“HTTPS访问”,点击“确定”保存。
- 同时确认80端口已开放,用于后续HTTP到HTTPS的自动跳转。
二、阿里云SSL证书申请(免费/付费)
2.1 证书类型选择
阿里云数字证书管理服务提供多种SSL证书,适配不同场景:
- 免费DV证书:个人/小型网站首选,支持单域名,有效期90天,每年可申请20张,自动审核签发(1-15分钟),适合测试与个人站点。
- 付费DV证书:支持单域名/多域名/通配符域名,有效期1-2年,自动审核,适合中小企业官网。
- OV/EV证书:企业级证书,需人工审核(约5个工作日),支持企业身份验证,EV证书浏览器显示绿色地址栏,适合金融、电商等高安全需求场景。
2.2 免费DV证书申请流程(推荐)
- 登录阿里云控制台,搜索“数字证书管理服务”进入控制台。
- 在左侧导航栏选择“SSL证书”,点击“免费证书”页签,点击“创建证书”。
- 在弹出的窗口中,选择“快捷签发”,输入证书绑定的域名(如www.example.com),填写联系人邮箱与手机号,点击“提交审核”。
- 选择域名验证方式:自动DNS验证(推荐,阿里云域名可自动完成)或文件验证(需上传验证文件到服务器)。
- 等待审核,DV证书通常1-15分钟内完成签发,状态变为“已签发”即可下载。详情👉访问阿里云 数字证书管理服务(原SSL证书) 平台了解。
2.3 付费证书申请流程
- 在数字证书管理服务控制台,点击“购买证书”,选择证书类型(DV/OV/EV)、域名类型(单域名/多域名/通配符)与有效期。
- 完成支付后,返回证书列表,点击“申请”,填写域名、企业信息(OV/EV需填写)、联系人信息。
- 完成域名验证与企业身份验证(OV/EV需提交营业执照等材料),等待审核通过。
- 审核通过后,证书状态变为“已签发”,即可下载部署。
2.4 证书下载
证书签发后,在证书列表中找到目标证书,点击“下载”:
- 选择服务器类型(Nginx/Apache/Tomcat/IIS等),本教程以Nginx与Apache为例。
- 下载对应压缩包,解压后得到两个核心文件:
- 证书文件:
域名.pem(Nginx)或域名.crt(Apache)。 - 私钥文件:
域名.key(需妥善保管,切勿泄露)。
- 证书文件:
三、SSL证书部署到阿里云ECS服务器
3.1 证书文件上传至ECS
通过远程连接工具(Xshell、PuTTY、WinSCP)将证书文件上传至ECS服务器安全目录:
- 登录ECS服务器,创建证书存储目录(推荐路径):
# Nginx服务器证书目录 sudo mkdir -p /etc/nginx/ssl # Apache服务器证书目录 sudo mkdir -p /etc/httpd/ssl - 使用WinSCP或scp命令上传证书文件:
# scp命令上传(本地终端执行,替换路径与IP) scp /本地路径/域名.pem root@ECS公网IP:/etc/nginx/ssl/ scp /本地路径/域名.key root@ECS公网IP:/etc/nginx/ssl/ - 设置文件权限,确保私钥安全:
# Nginx sudo chmod 600 /etc/nginx/ssl/域名.key sudo chown root:root /etc/nginx/ssl/域名.key # Apache sudo chmod 600 /etc/httpd/ssl/域名.key sudo chown root:root /etc/httpd/ssl/域名.key
3.2 Nginx服务器HTTPS配置
- 编辑Nginx站点配置文件(通常位于
/etc/nginx/conf.d/或/etc/nginx/sites-available/):sudo vim /etc/nginx/conf.d/你的域名.conf 添加HTTPS配置块(监听443端口),完整配置如下:
server { listen 443 ssl; server_name 你的域名; # 如www.example.com # SSL证书配置 ssl_certificate /etc/nginx/ssl/域名.pem; ssl_certificate_key /etc/nginx/ssl/域名.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; # 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; } }- 配置HTTP自动跳转HTTPS(新增80端口监听块):
server { listen 80; server_name 你的域名; # 301永久重定向到HTTPS return 301 https://$host$request_uri; } - 验证Nginx配置是否正确:
若显示“test is successful”,则配置无误。sudo nginx -t - 重启Nginx服务使配置生效:
sudo systemctl restart nginx # 或重载配置(推荐,不中断服务) sudo nginx -s reload
3.3 Apache服务器HTTPS配置
- 安装Apache SSL模块(若未安装):
sudo yum install mod_ssl -y # CentOS/RHEL sudo apt install apache2 -y # Ubuntu/Debian - 编辑Apache站点配置文件(CentOS:
/etc/httpd/conf.d/ssl.conf;Ubuntu:/etc/apache2/sites-available/你的域名.conf):sudo vim /etc/httpd/conf.d/ssl.conf 修改SSL证书路径与相关配置:
<VirtualHost *:443> ServerName 你的域名 DocumentRoot "/var/www/html" # SSL证书配置 SSLEngine on SSLCertificateFile /etc/httpd/ssl/域名.crt SSLCertificateKeyFile /etc/httpd/ssl/域名.key SSLCertificateChainFile /etc/httpd/ssl/域名.pem # 若有证书链文件 # 安全协议配置 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES SSLHonorCipherOrder on # HSTS配置 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" <Directory "/var/www/html"> AllowOverride All Require all granted </Directory> </VirtualHost>- 配置HTTP跳转HTTPS,编辑
/etc/httpd/conf.d/你的域名.conf:<VirtualHost *:80> ServerName 你的域名 Redirect permanent / https://你的域名/ </VirtualHost> - 验证Apache配置:
sudo apachectl configtest # CentOS sudo apache2ctl configtest # Ubuntu - 重启Apache服务:
sudo systemctl restart httpd # CentOS sudo systemctl restart apache2 # Ubuntu
四、全站HTTPS验证与优化
4.1 HTTPS部署验证
- 浏览器验证:在浏览器中输入
https://你的域名,地址栏显示安全锁图标,即部署成功。 - 在线工具验证:使用SSL Labs Server Test等工具检测证书有效性、协议支持与安全评分。
- 命令行验证:
# 验证443端口监听 sudo netstat -tuln | grep 443 # 验证证书信息 openssl s_client -connect 你的域名:443
4.2 全站资源HTTPS优化(解决混合内容问题)
HTTPS部署后,若页面中存在HTTP资源(图片、CSS、JS),浏览器会提示“混合内容”,需统一修改为HTTPS:
- 修改网站代码:将所有资源链接的
http://替换为https://,或使用相对路径//(自动适配协议)。 - Nginx反向代理修复:在Nginx配置中添加以下规则,自动替换HTTP资源:
sub_filter 'http://你的域名' 'https://你的域名'; sub_filter_once off; - 启用HSTS:已在配置中添加HSTS头,强制浏览器后续访问仅使用HTTPS,有效避免协议降级攻击。
4.3 安全加固配置
- 禁用不安全协议:仅保留TLSv1.2与TLSv1.3,禁用SSLv2、SSLv3、TLSv1、TLSv1.1。
- 配置OCSP Stapling:提升证书验证速度,Nginx配置添加:
ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/nginx/ssl/域名.pem; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; - 定期更新证书:免费证书有效期90天,需在到期前重新申请部署;付费证书提前续费,避免服务中断。
五、常见问题排查
5.1 证书部署后无法访问HTTPS
- 问题:访问
https://域名显示无法连接。 - 解决:检查ECS安全组是否放通443端口;确认Nginx/Apache服务已启动;验证证书文件路径与权限是否正确;检查防火墙(firewalld/ufw)是否拦截443端口。
5.2 浏览器提示“证书不安全”
- 问题:地址栏无安全锁,提示证书无效。
- 解决:确认证书已签发且未过期;检查证书绑定域名与访问域名一致;清除浏览器缓存或使用无痕模式访问;验证证书链是否完整(付费证书需上传证书链文件)。
5.3 混合内容错误(页面样式错乱)
- 问题:HTTPS页面加载失败,样式/图片不显示。
- 解决:排查页面中所有HTTP资源链接,替换为HTTPS;启用Nginx子过滤器自动替换;配置CSP(内容安全策略)限制HTTP资源加载。
5.4 HTTP跳转HTTPS失败
- 问题:访问
http://域名未自动跳转到HTTPS。 - 解决:检查80端口是否开放;验证Nginx/Apache的301重定向配置是否正确;重启Web服务;清除浏览器缓存。
六、总结与后续维护
通过本教程,你已完成阿里云ECS服务器的HTTPS全流程改造,包括SSL证书申请、服务器部署、全站加密配置与安全优化。HTTPS不仅保障数据传输安全,还能提升用户体验与搜索引擎排名,是现代网站的必备配置。
后续需定期维护:监控证书有效期,提前续期;定期扫描网站混合内容,确保全站HTTPS;更新Web服务与SSL协议配置,修复安全漏洞;结合阿里云安全服务(如WAF)进一步提升网站防护能力。随着网络安全技术的发展,持续优化HTTPS配置,才能为用户提供更安全、可靠的访问体验。