首页主机资讯Debian Apache SSL证书安装

Debian Apache SSL证书安装

时间2025-12-18 16:16:03发布访客分类主机资讯浏览637
导读: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.comwww.example.com)。
    • 端口与防火墙:确保 443 端口开放(如 ufw allow ‘Apache Full’)。
    • 配置语法:修改后先执行 apache2ctl configtest,再 reload/restart。
    • 续期失败:检查域名解析、Web 根目录可写性、端口连通性与定时任务状态。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Apache SSL证书安装
本文地址: https://pptw.com/jishu/775204.html
Ubuntu系统中日志文件在哪 Debian Apache错误页面自定义

游客 回复需填写必要信息