安装Certbot及Apache插件
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
在当今数字化时代,网络安全已成为网站运营不可忽视的核心议题,启用 HTTPS 加密通信不仅能够有效防止数据被窃听或篡改,还能显著提升用户对网站的信任度,同时有利于搜索引擎优化(SEO),从而提高网站排名与访问量。
对于部署在 Ubuntu 系统上的 Web 服务(如 Nginx 或 Apache),正确配置并安装 SSL 证书是实现 HTTPS 的基础步骤,本文将为您提供一份详尽、实用且可操作性强的 SSL 证书安装全流程指南,涵盖前期准备、自动获取证书、手动部署以及后续维护等关键环节。
准备工作:搭建安全通信的基础
在正式安装 SSL 证书前,请确认已完成以下几项基础工作:
-
拥有一个已备案的有效域名
SSL 证书必须绑定到具体的域名上,请确保您的域名已成功注册并解析至当前服务器 IP 地址。 -
选择合适的 SSL 证书类型
- 免费证书:推荐使用 Let’s Encrypt 提供的免费 TLS/SSL 证书,支持自动化签发与续期。
- 商业证书:若需通配符(Wildcard)或多域名支持,可考虑购买 DigiCert、Sectigo、GlobalSign 等权威机构颁发的证书。
-
明确使用的 Web 服务器软件
Ubuntu 上主流的 Web 服务为 Nginx 和 Apache,两者的配置语法不同,需提前确定所用服务。 -
通过 SSH 登录服务器并具备管理员权限
使用sudo
权限账户登录目标 Ubuntu 主机,以便执行系统级操作。 -
开放必要的防火墙端口
确保服务器防火墙允许 HTTP (80) 和 HTTPS (443) 流量:sudo ufw allow 'Nginx Full' # 若使用 Nginx sudo ufw allow 'Apache Full' # 若使用 Apache
自动获取 SSL 证书(以 Let’s Encrypt + Certbot 为例)
安装 Certbot 工具
Certbot 是由电子前哨基金会(EFF)开发的开源工具,专为 Let’s Encrypt 设计,支持自动申请、部署与续签证书。
sudo apt update sudo apt install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-nginx # 针对 Nginx 用户 # 或者使用 python3-certbot-apache 适用于 Apache
✅ 小贴士:PPA 源可加快包更新速度,若网络受限,也可直接使用 snap 安装最新版 Certbot:
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
申请并部署证书
运行以下命令开始证书申请流程:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot 将自动完成以下操作:
- 向 Let’s Encrypt 发起请求;
- 使用 HTTP-01 或 DNS-01 方式验证域名所有权;
- 自动生成证书文件;
- 修改 Nginx 配置以启用 HTTPS;
- 添加自动跳转规则(HTTP → HTTPS)。
🔐 默认情况下,证书文件存储路径为:
/etc/letsencrypt/live/yourdomain.com/
包含两个核心文件:
fullchain.pem
:完整的证书链(包含站点证书和中间 CA 证书)privkey.pem
:私钥文件(务必严格保护)
手动安装第三方 SSL 证书(适用于商业证书)
若您从其他证书颁发机构(CA)购买了 SSL 证书(OV、EV 或 Wildcard 类型),则需要手动上传并配置。
上传证书文件至服务器
通常收到的证书包括:
your_domain.crt
:服务器证书ca-bundle.crt
或chain.crt
:中间证书your_private.key
:私钥文件(生成 CSR 时创建)
建议统一存放于标准目录中:
sudo cp your_domain.crt /etc/ssl/certs/ sudo cp ca-bundle.crt /etc/ssl/certs/ sudo cp your_private.key /etc/ssl/private/ # 设置私钥权限,防止未授权访问 sudo chmod 600 /etc/ssl/private/your_private.key sudo chown root:ssl-cert /etc/ssl/private/your_private.key
⚠️ 安全提醒:私钥属于敏感信息,切勿泄露或提交至代码仓库。
配置 Web 服务器
✅ Nginx 配置示例
编辑站点配置文件(如 /etc/nginx/sites-available/your-site
):
server { listen 443 ssl http2; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/ssl/certs/your_domain.crt; ssl_certificate_key /etc/ssl/private/your_private.key; ssl_trusted_certificate /etc/ssl/certs/ca-bundle.crt; # 可选,用于 OCSP Stapling ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-SHA384; ssl_prefer_server_ciphers off; root /var/www/html; index index.html; # 安全头增强(可选) add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options DENY; }
同时添加 HTTP 到 HTTPS 的重定向:
server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; }
保存后测试配置并重启服务:
sudo nginx -t && sudo systemctl reload nginx
✅ Apache 配置示例
修改虚拟主机配置文件(如 /etc/Apache2/sites-available/your-site.conf
):
<VirtualHost *:443> ServerName yourdomain.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/ssl/certs/your_domain.crt SSLCertificateKeyFile /etc/ssl/private/your_private.key SSLCACertificateFile /etc/ssl/certs/ca-bundle.crt # 推荐的安全参数 SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE+AESGCM:EDH+AESGCM:!aNULL </VirtualHost> <VirtualHost *:80> ServerName yourdomain.com Redirect permanent / https://yourdomain.com/ </VirtualHost>
启用相关模块并重启 Apache:
sudo a2enmod ssl sudo a2ensite your-site.conf sudo systemctl restart apache2
验证证书安装结果
完成配置后,务必进行全方位验证:
-
浏览器访问测试
打开https://yourdomain.com
,检查地址栏是否显示绿色锁形图标,点击可查看证书详情。 -
在线安全检测工具
使用 SSL Labs 的 SSL Test 对网站进行全面扫描,评估加密强度、协议兼容性和漏洞风险。 -
命令行快速验证
sudo apt update sudo apt install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-nginx # 针对 Nginx 用户 # 或者使用 python3-certbot-apache 适用于 Apache0
查看证书有效期及基本信息。
证书续期与日常维护
Let’s Encrypt 自动续期机制
Let’s Encrypt 证书有效期仅为 90 天,但 Certbot 会自动创建定时任务(cron job 或 systemd timer)定期检查并续签即将过期的证书。
手动测试续期功能(不实际更新):
sudo apt update sudo apt install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-nginx # 针对 Nginx 用户 # 或者使用 python3-certbot-apache 适用于 Apache1
如果输出显示 “The certificate is due for renewal” 并无错误,则说明自动续期机制正常运作。
🛠️ 建议设置每周自动运行一次检查: