17 Apache2 网站部署中的 SSL/TLS 配置与证书申请

在上一篇文章中,我们讨论了 Apache2 服务的日志管理与监控。日志管理是确保服务器安全性与性能的重要环节,而在现代网站部署中,增强安全性设置同样至关重要。本篇文章将主要聚焦于 SSL/TLS 配置证书申请,为您的网站增添一层强有力的安全保护。

什么是 SSL/TLS?

SSL(安全套接层)和 TLS(传输层安全性)是保护互联网通信的协议。它们通过加密技术确保数据在用户和服务器之间传输的安全性,帮助防止信息被窃取或篡改。

为什么需要 SSL/TLS?

启用 SSL/TLS 后,您的网站地址将变为 https://,相比 http:// 更加安全,用户更信任。现代浏览器对未加密的网站会显著提示用户,增加了网站离线流失的风险。此外,启用 HTTPS (即 SSL/TLS)还有助于提高您网站的 SEO 排名。

申请 SSL/TLS 证书

选择证书提供商

常见的 SSL/TLS 证书提供商包括:

  • Let’s Encrypt: 免费的证书颁发机构,使用非常普遍。
  • DigiCert: 提供付费证书,适用于企业和电商网站。
  • CertumGeoTrust 等其他知名品牌。

本文将以 Let’s Encrypt 为例。

使用 Certbot 申请证书

  1. 安装 Certbot

    在 Ubuntu 系统上,可以通过以下命令安装 Certbot:

    1
    2
    sudo apt update
    sudo apt install certbot python3-certbot-apache
  2. 申请证书

    使用 Certbot 申请 SSL/TLS 证书,您需要保证域名的解析已经指向您的服务器。执行以下命令:

    1
    sudo certbot --apache

    Certbot 会引导您完成域名验证的过程。通过 http-01dns-01 验证,确保您对域名的管理权限。

    按照提示输入您的电子邮件地址,接受服务条款,并选择需要保护的域名。

  3. 自动续期设置

    Let’s Encrypt 的证书有效期为 90 天,因此您需要设置自动续期。可以通过以下命令测试续期:

    1
    sudo certbot renew --dry-run

    如果没有错误信息,建议将续期任务添加到 cron 中,每天运行 Certbot:

    1
    sudo crontab -e

    添加以下行以设置 daily job:

    1
    0 2 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/letsencrypt.log

配置 Apache2 启用 SSL/TLS

配置 Virtual Host

/etc/apache2/sites-available/ 目录下创建一个 SSL 配置文件,例如 your_domain.conf。示例配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:443>
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/your_domain

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/your_domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/your_domain.com/privkey.pem

<Directory /var/www/your_domain>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用 SSL 模块和配置

使用以下命令启用 SSL 模块与生效配置:

1
2
3
sudo a2enmod ssl
sudo a2ensite your_domain.conf
sudo systemctl restart apache2

优化 SSL/TLS 配置

为了提高安全性,可以考虑重定向 HTTP 请求到 HTTPS,增加一些安全头,使用现代加密协议。以下是一个常见的安全增强示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<VirtualHost *:80>
ServerName your_domain.com
Redirect permanent / https://your_domain.com/
</VirtualHost>

<VirtualHost *:443>
# 前面提到的配置...

# 添加安全头
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
Header always set X-XSS-Protection "1; mode=block"
</VirtualHost>

推荐加密套件

SSLProtocolSSLCipherSuite 中配置推荐的加密套件,以提高安全性:

1
2
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5

测试您的 SSL/TLS 配置

使用 SSL LabsSSL Test 工具检测您的 SSL/TLS 配置,确保没有安全漏洞,并根据反馈进行调整。

总结

通过上述步骤,您已经成功为 Apache2 网站配置了 SSL/TLS,申请并安装了证书,提高了网站的安全性。在下一篇文章中,我们将讨论防火墙设置与安全策略,为服务器增加进一步的保护。确保您的服务器安全,从每一个细节做起!

17 Apache2 网站部署中的 SSL/TLS 配置与证书申请

https://zglg.work/apache2-web-deploy/17/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论