云计算百科
云计算领域专业知识百科平台

Ubuntu服务器上为Apache网站安装部署SSL证书详细步骤

现在很多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个网站可以实现。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Ubuntu服务器上为Apache网站安装部署SSL证书详细步骤
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!