Debian Apache SSL证书安装
导读:Debian 上 Apache 安装与配置 SSL 证书 一 准备与前置检查 准备一个已解析到服务器公网 IP 的域名(如:example.com),并准备好 Web 根目录(如:/var/www/example.com/public_h...
Debian 上 Apache 安装与配置 SSL 证书
一 准备与前置检查
- 准备一个已解析到服务器公网 IP 的域名(如:example.com),并准备好 Web 根目录(如:/var/www/example.com/public_html)。
- 安装 Apache 与 OpenSSL:
sudo apt update
sudo apt install apache2 openssl - 启用 SSL 模块与默认 SSL 站点(Debian 8/9 常见做法):
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl reload apache2 - 防火墙放行 HTTPS:
sudo ufw allow ‘Apache Full’
以上为后续无论是自签名证书还是 Let’s Encrypt 的基础准备。
二 方式一 使用 Let’s Encrypt 免费证书(推荐)
- 安装 Certbot(Debian 10+/11+/12+ 通常仓库自带;旧版如 Debian 9 需启用 backports 后安装):
sudo apt update
sudo apt install certbot python3-certbot-apache - 确保虚拟主机中已正确设置 ServerName example.com,并语法检查:
sudo apache2ctl configtest & & sudo systemctl reload apache2 - 获取并自动配置证书(可一次指定多个域名):
sudo certbot --apache -d example.com -d www.example.com - 验证自动续期:
sudo systemctl status certbot.timer
sudo certbot renew --dry-run
证书默认路径为:/etc/letsencrypt/live/example.com/fullchain.pem(证书链)与 /etc/letsencrypt/live/example.com/privkey.pem(私钥)。
三 方式二 手动安装证书(自签名或已有 CA 证书)
- 生成自签名证书(测试环境可用):
sudo mkdir -p /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
sudo chmod 600 /etc/apache2/ssl/* - 配置 Apache 的 SSL 虚拟主机(示例):
sudo nano /etc/apache2/sites-available/example.com-ssl.conf
关键指令示例:
< VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/example.com/public_html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
启用站点并热重载:
sudo a2ensite example.com-ssl.conf
sudo systemctl reload apache2 - 自签名证书会在浏览器中显示不受信任警告,仅适合测试或内网使用。
四 可选优化与安全加固
- 生成 DH 参数(提升 TLS 安全性):
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 - 在 SSL 虚拟主机中补充安全与性能项(按需启用):
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem可选:SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
可选:SSLCipherSuite HIGH:!aNULL:!MD5:!ADH:!RC4:!DH:!RSA
可选:SSLHonorCipherOrder on
可选:HTTP/2(需启用模块)
可选:HSTS、OCSP Stapling、关闭压缩等
Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”
Header always set X-Frame-Options “DENY”
Header always set X-Content-Type-Options “nosniff”
SSLCompression off
SSLUseStapling on
SSLStaplingCache “shmcb:logs/stapling-cache(150000)”
SSLSessionTickets off - 强制 HTTP 跳转至 HTTPS(在 000-default.conf 的 <
VirtualHost *:80>
中添加):
Redirect permanent / https://example.com/
完成后执行:sudo apache2ctl configtest & & sudo systemctl reload apache2。
五 验证与常见问题
- 命令行验证:
openssl s_client -connect example.com:443
curl -Iv https://example.com - 浏览器访问 https://example.com,确认锁标与证书信息(颁发给、颁发者、有效期)。
- 常见问题排查:
- 证书不受信任:自签名证书属正常;公网请使用 Let’s Encrypt 或商业 CA。
- 域名不匹配:证书的 Common Name/SAN 必须覆盖访问域名(如同时覆盖 example.com 与 www.example.com)。
- 端口与防火墙:确保 443 端口开放(如 ufw allow ‘Apache Full’)。
- 配置语法:修改后先执行 apache2ctl configtest,再 reload/restart。
- 续期失败:检查域名解析、Web 根目录可写性、端口连通性与定时任务状态。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Apache SSL证书安装
本文地址: https://pptw.com/jishu/775204.html
