部署SSL证书有一键自动方式和手动配置方式两种。如果你是第一次配置,建议选择自动方式,可以大幅降低出错的可能。
这里为你梳理了在主流服务器上部署证书的具体操作,以及在遇到问题时该如何排查。
🎯 一键自动:使用ACME协议部署
这种方式适合使用Apache或Nginx,并拥有服务器sudo/root权限的Linux用户。
安装Certbot工具
Certbot是一个免费开源的自动化工具,能帮你完成证书申请、配置和续期。对于Ubuntu/Debian系统:
# 如果你是Apache服务器sudo apt updatesudo apt install certbot python3-certbot-apache# 如果你是Nginx服务器sudo apt updatesudo apt install certbot python3-certbot-nginx
对于CentOS/RHEL/AlmaLinux/Rocky Linux系统:
# 先安装EPEL软件源sudo dnf install epel-releasesudo dnf update# 如果你是Apache服务器sudo dnf install certbot python3-certbot-apache# 如果你是Nginx服务器sudo dnf install certbot python3-certbot-nginx
运行并申请证书
安装完成后,只需要一条命令,Certbot就会自动完成证书申请和配置。运行命令后,Certbot会引导你完成几个简单设置,比如输入你的邮箱、需要绑定的域名,并询问你是否需要自动将HTTP流量重定向到HTTPS。选择“是”(2或Redirect),就能一步到位完成所有配置。
对于Apache:
sudo certbot --apache
对于Nginx:
sudo certbot --nginx
设置自动续期
Let's Encrypt等免费证书的有效期通常是90天。不用担心,Certbot会自动设置一个定时任务,在证书到期前为你无缝更新证书。你只需执行以下命令确认定时任务在正常运行即可:systemctl list-timers | grep certbot
🔧 手动配置:主流Web服务器操作指南
如果因为某些原因你无法使用自动方式,或需要在自己的云服务器上手动配置,可以参考以下步骤。
Apache 服务器
准备工作:
从你的证书提供商(如腾讯云、阿里云、华为云等)处下载 Apache 格式的证书文件。通常包含
1_root_bundle.crt(根证书链)、2_你的域名.crt(域名证书)和3_你的域名.key(私钥文件)。配置步骤:
启用SSL模块:编辑Apache主配置文件
httpd.conf,找到并取消以下两行前的注释符#:LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
编辑SSL配置文件:打开或创建
httpd-ssl.conf文件(或conf.d/ssl.conf),在<VirtualHost _default_:443>代码块中,配置以下四行关键指令:ServerName 你的域名:443 SSLCertificateFile /etc/httpd/ssl/2_你的域名.crt SSLCertificateKeyFile /etc/httpd/ssl/3_你的域名.key SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt
注意:私钥文件(
.key)的权限非常重要,建议设置为600(仅root用户可读写)以确保安全。重启Apache服务:配置修改后,重启服务使其生效。
# CentOS/RHEL系统sudo systemctl restart httpd# Ubuntu/Debian系统sudo systemctl restart apache2
Nginx 服务器
准备工作:
配置步骤:
上传证书文件:将证书文件和私钥文件上传到Nginx服务器,例如存放到
/etc/nginx/ssl/目录下。编辑站点配置文件:编辑你的站点配置文件(通常在
/etc/nginx/conf.d/或/etc/nginx/sites-available/目录下),在server块中添加或修改以下配置:server { listen 443 ssl; server_name 你的域名; ssl_certificate /etc/nginx/ssl/你的域名.crt; ssl_certificate_key /etc/nginx/ssl/你的域名.key; # 强烈建议添加,启用强加密协议 ssl_protocols TLSv1.2 TLSv1.3; # 可选:配置网站根目录 location / { root /usr/share/nginx/html; index index.html index.htm; }}# 可选:将HTTP请求重定向到HTTPSserver { listen 80; server_name 你的域名; return 301 https://$host$request_uri;}测试并重启Nginx:先测试配置文件是否有语法错误,然后再重启。
# 测试配置文件sudo nginx -t# 如果测试成功,则平滑重启Nginxsudo nginx -s reload
IIS 服务器
IIS(Windows Server)的配置相对直观,主要通过图形界面操作。
准备工作:
配置步骤:
