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

[菜鸟写的web教程]在 Linux 服务器上为 Apache 部署 SSL 证书并配置 HTTPS

文章目录

    • 前提条件
    • 步骤 1:申请 SSL 证书并下载文件
    • 步骤 2:上传证书文件到服务器
    • 步骤 3:配置 Apache 使用 SSL 证书
    • 步骤 4:启用 SSL 模块并启用站点配置
    • 步骤 5:重启 Apache
    • 步骤 6:检查 SSL 证书是否正常工作
    • 步骤 7:配置 HTTP 自动重定向到 HTTPS(可选)
    • 步骤 8:启用 HSTS(可选)
    • 常见问题解决
    • 完成

前提条件

  • 一台已部署好网站的 Linux 服务器(例如 Ubuntu、CentOS)。-主页有课程
  • 已安装并配置 Apache 服务器。-主页有课程
  • 已申请的 SSL 证书(可以是阿里云或其他提供商的免费/付费 SSL 证书)。

步骤 1:申请 SSL 证书并下载文件

  • 申请证书:在 SSL 证书服务提供商(例如阿里云)申请 SSL 证书,确保填写的域名正确,如 www.example.com 或 *.example.com。 在阿里云的数字证书管理服务中,点击SSL证书管理,在个人测试证书中点击创建证书,按照提示填写信息,包括域名。 在这里插入图片描述
  • 下载证书:下载 Apache 格式的证书文件,解压后会得到以下三个文件:
    • example.key(私钥文件)
    • example.crt(证书文件)
    • example_chain.crt(证书链文件) 在个人测试证书中找到要部署的证书,点击后面的更多。 在这里插入图片描述 如下图,点击下载,找到Apache后面的下载,下载后压缩包中包括:
    • *.key
    • *_chain.crt
    • *_public.crt 在这里插入图片描述

    步骤 2:上传证书文件到服务器

  • 将解压后的证书文件通过 scp 或 FTP 等方式上传到服务器,存放在一个安全目录,例如 /etc/httpd/cert/。这个地址专门用来存放SSL证书,可以记下来。 这里可以使用FileZilla软件与服务器文件进行交互操作,比较方便,具体操作方法可以搜一下,非常简单。
  • 设置文件权限,保护私钥文件的安全:sudo chmod 644 /etc/httpd/cert/example.crt /etc/httpd/cert/example_chain.crt
    sudo chmod 600 /etc/httpd/cert/example.key
  • 步骤 3:配置 Apache 使用 SSL 证书

  • 打开 Apache 虚拟主机配置文件,通常在 /etc/apache2/sites-available/ 或 /etc/httpd/conf.d/ 下。例如,编辑 example.conf:sudo nano /etc/apache2/sites-available/example.conf
    如果目录下存在多个conf,不知道哪个在使用的话可以查看主页另一篇文章:《[菜鸟写的web教程]如何查找和管理 Apache 服务器的生效配置文件》
  • 在文件中添加或修改如下内容,配置 HTTPS:<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName www.example.com—–自己的域名
    ServerAlias example.com—–自己的域名
    DocumentRoot /var/www/html/

    SSLEngine on
    SSLCertificateFile /etc/httpd/cert/example.crt—–自己的路径和文件
    SSLCertificateKeyFile /etc/httpd/cert/example.key—–自己的路径和文件
    SSLCertificateChainFile /etc/httpd/cert/example_chain.crt —–自己的路径和文件

    <Directory /var/www/html/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
    </VirtualHost>

  • 这里需要注意,本系列课程中,前几篇文章里面这个文件中配置的端口是80,而HTTPS一般使用443。阿里云服务器中的安全策略中,需要打开443端口。

    步骤 4:启用 SSL 模块并启用站点配置

  • 启用 Apache 的 SSL 模块(如果未启用):sudo a2enmod ssl
  • 启用新的虚拟主机配置:sudo a2ensite example.conf
  • 步骤 5:重启 Apache

    重启 Apache 服务以应用新的配置:

    sudo systemctl restart apache2 # Ubuntu/Debian
    sudo systemctl restart httpd # CentOS/RHEL

    步骤 6:检查 SSL 证书是否正常工作

  • 在浏览器中访问 https://www.example.com,验证是否可以正常加载。
  • 如果页面显示为“不安全”,请检查浏览器的开发者工具,是否存在“混合内容”警告或 SSL 配置问题。 注意:本系列课程前期使用的是wordpress搭建网站,在后台设置中有地址和站点地址,需要修改为自己的域名。不然在打开子界面时,使用的还是http或者直接进入IP地址。
  • 步骤 7:配置 HTTP 自动重定向到 HTTPS(可选)

    为提高网站安全性,配置将所有 HTTP 请求重定向到 HTTPS:

  • 编辑 Apache 的 80 端口配置:<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    Redirect permanent / https://www.example.com/
    </VirtualHost>
  • 保存文件并重启 Apache 服务。
  • 步骤 8:启用 HSTS(可选)

    HSTS(HTTP Strict Transport Security)会强制浏览器始终通过 HTTPS 访问站点,进一步提高安全性:

  • 在 VirtualHost *:443 配置中添加以下行:Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  • 重启 Apache 服务以应用更改。
  • 常见问题解决

  • 证书不匹配警告:检查 ServerName 和 ServerAlias 是否与证书中包含的域名匹配。
  • 混合内容警告:确保网站加载的所有资源都使用 HTTPS。
  • 缓存问题:清除浏览器缓存或使用隐私模式重新访问网站。
  • 完成

    现在,你已经成功为 Apache 服务器配置了 SSL 证书,网站应能通过 https 安全访问! 在这里插入图片描述

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » [菜鸟写的web教程]在 Linux 服务器上为 Apache 部署 SSL 证书并配置 HTTPS
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!