现在很多WEB服务器都是采用Ubuntu操作系统,由于工作需要,经常部署网站及其SSL证书,下面记录下日常工作内容:在Ubuntu 24.04系统上,为Apache网站部署SSL证书的通用详细步骤。这个过程主要分为获取SSL证书和配置Apache两个大部分,证书也分收费和免费的。
部署SSL证书详细步骤
第一部分:获取SSL证书
可以选择免费或付费的证书颁发机构(CA)。最常用的免费证书是Let's Encrypt。
方法一:使用 Certbot 获取 Let‘s Encrypt 免费证书(推荐)
这是最简便和流行的方式。
更新系统并安装Certbot
首先,确保您的系统软件包是最新的,然后安装Certbot及其Apache插件。
sudo apt update
sudo apt upgrade -y
sudo apt install certbot python3-certbot-apache -y
获取并自动配置证书
运行以下命令,Certbot会自动检测您的Apache虚拟主机,并引导您完成配置。请将 www.yourdomain.com替换为您实际的域名。
sudo certbot –apache -d www.yourdomain.com
-
过程中,Certbot会提示您输入邮箱地址用于安全通知和账号恢复。
-
需要阅读并同意服务条款。
-
它会询问是否愿意分享您的邮箱给电子前沿基金会(EFF),可选否。
-
最后,它会询问您是否希望将HTTP流量重定向到HTTPS。强烈建议选择“2”来启用重定向,以确保所有访问都使用安全的HTTPS。
自动续期测试
Let‘s Encrypt证书有效期为90天,但Certbot设置了自动续期任务。您可以测试自动续期是否正常工作:
sudo certbot renew –dry-run
如果测试成功,证书将能够自动续期,无需手动干预。
方法二:使用商业SSL证书
如果您从其他提供商(如GoDaddy, DigiCert等)购买了商业证书,通常需要以下步骤:
生成证书签名请求(CSR)
在服务器上使用OpenSSL生成私钥和CSR文件。
sudo openssl req -new -newkey rsa:2048 -nodes -keyout /etc/ssl/private/yourdomain.key -out /etc/ssl/certs/yourdomain.csr
-
系统会提示您输入域名信息(如Common Name,即您的域名)。
-
生成的 .key文件是您的私钥,务必保密。.csr文件是证书请求文件。
提交CSR并下载证书
将生成的 .csr文件内容提交给证书提供商。通过验证后,您将收到证书文件(通常为 .crt或 .pem格式)和可能的中间证书(Intermediate CA Certificate)。
上传证书文件
将收到的证书文件(如 yourdomain.crt)和中间证书文件上传到服务器,例如放到 /etc/ssl/certs/目录。确保您的私钥文件(yourdomain.key)已在 /etc/ssl/private/目录。
第二部分:配置Apache以使用SSL证书
如果您使用了上面的方法一(Certbot),配置通常是自动完成的,您可以跳过此部分。如果您是手动安装证书(方法二),请继续。
启用SSL模块
Apache需要加载SSL模块。
sudo a2enmod ssl
sudo a2enmod rewrite
配置虚拟主机
您需要为HTTPS创建一个新的虚拟主机配置或修改现有配置。配置文件通常位于 /etc/apache2/sites-available/。
-
编辑或创建SSL虚拟主机文件,例如 yourdomain-ssl.conf。
sudo nano /etc/apache2/sites-available/yourdomain-ssl.conf
-
在文件中添加以下配置内容,并替换其中的路径和域名为您的实际信息:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.yourdomain.com
# 网站根目录
DocumentRoot /var/www/html
# 日志文件
ErrorLog ${APACHE_LOG_DIR}/yourdomain_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/yourdomain_ssl_access.log combined
# SSL 配置
SSLEngine on
# 证书文件路径
SSLCertificateFile /etc/ssl/certs/yourdomain.crt
# 私钥文件路径
SSLCertificateKeyFile /etc/ssl/private/yourdomain.key
# 中间证书文件路径(如果有)
SSLCertificateChainFile /etc/ssl/certs/yourdomain_intermediate.crt
# 其他配置…
</VirtualHost>
# HTTP 重定向到 HTTPS(可选但推荐)
<VirtualHost *:80>
ServerName www.yourdomain.com
Redirect permanent / https://www.yourdomain.com/
</VirtualHost>
</IfModule>
启用站点并测试配置
-
启用新的SSL站点配置:
sudo a2ensite yourdomain-ssl.conf
-
检查Apache配置是否有语法错误:
sudo apache2ctl configtest
-
如果输出 Syntax OK,则继续。
-
-
重新加载Apache以使配置生效:
sudo systemctl reload apache2
第三部分:验证部署
完成以上步骤后,请进行验证:
在浏览器中访问 https://www.yourdomain.com,检查地址栏是否显示安全锁标志。
使用在线SSL检测工具(如 SSL Labs SSL Test)检查您的证书配置是否正确和安全。
重要安全提示
-
备份私钥:您的私钥文件(.key)是核心机密,一旦丢失,证书将无法使用,请妥善备份。
-
文件权限:确保私钥文件只有root用户可读,权限通常设置为 600。
sudo chmod 600 /etc/ssl/private/yourdomain.key
-
防火墙:确保Ubuntu的防火墙(如 ufw)已放行HTTPS(端口443)流量。
sudo ufw allow 'Apache Full'
# 或者单独允许443端口
sudo ufw allow 443/tcp
通过以上步骤就能在Ubuntu 24.04的Apache服务器上部署SSL证书,亲测过3个网站可以实现。
网硕互联帮助中心


评论前必须登录!
注册