LZM

在CentOS7上使用Apache配置HTTPS和自动跳转配置

2024-11-26 12:56:42

本文将详细介绍如何在 CentOS7 操作系统上为 Apache 服务器配置 SSL 证书,确保网站能够安全地通过 HTTPS 协议访问,并配置自动将 HTTP 请求重定向到 HTTPS。

申请和下载证书

首先,您需要在腾讯云等证书提供商处申请 SSL 证书。在成功申请并下载证书后,您将获得以下几个文件:
1_root_bundle.crt:根证书文件。
2_cloud.tencent.com.crt:域名证书文件。
3_cloud.tencent.com.key:私钥文件。
下载完成后,解压文件并上传到服务器的 /etc/httpd/ssl 目录下,确保证书文件能够被 Apache 配置文件访问。

安装必需的依赖

为了启用 SSL 加密和安全连接,您需要安装 mod_ssl 模块和 OpenSSL 工具。可以通过以下命令完成安装:

yum -y install mod_ssl openssl

配置 Apache 以启用 HTTPS

Apache 的 SSL 配置文件位于 /etc/httpd/conf.d/ssl.conf。打开此文件并进行如下修改:

<VirtualHost 0.0.0.0:443>
DocumentRoot "/wwwroot/web/public"
#填写证书的域名
ServerName cloud.tencent.com

#启用 SSL 功能
SSLEngine on

#证书文件路径
SSLCertificateFile /etc/httpd/ssl/2_cloud.tencent.com.crt

#私钥文件路径
SSLCertificateKeyFile /etc/httpd/ssl/3_cloud.tencent.com.key

#证书链文件路径
SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt
</VirtualHost>

在上面的配置中,您需要替换 ServerName 为您的域名,并确保路径指向您上传到 /etc/httpd/ssl 目录中的证书和私钥文件。

修改完成后,您需要重启 Apache 服务器以使配置生效:

systemctl restart httpd

至此,您的 Apache 服务器已成功配置为使用 HTTPS 进行安全连接。现在,您可以通过 https://cloud.tencent.com 来访问您的网站,保证通信是加密的。

配置 HTTP 自动重定向到 HTTPS

首先,确保 Apache 的重写模块(mod_rewrite)已启用。可以通过在 /etc/httpd/conf.modules.d/ 目录下创建一个新的配置文件来启用此模块:

echo "LoadModule rewrite_module modules/mod_rewrite.so" > /etc/httpd/conf.modules.d/00-rewrite.conf

接下来,我们需要修改原有的 HTTP 配置文件,在 /etc/httpd/conf.d/web.conf 中加入重定向规则。找到 <Directory "/var/www/html"> 部分,并添加以下内容:

<Directory "/var/www/html">
#启用重写引擎
RewriteEngine on

#检查请求是否为非 HTTPS
RewriteCond %{SERVER_PORT} !^443$

#重定向到 HTTPS
RewriteRule (.*) https://%{SERVER_NAME}$1 [L,R=301]
</Directory>

这段配置的作用是:当用户访问 HTTP(即端口 80)时,Apache 会自动将请求重定向到 HTTPS(即端口 443)。

完成上述修改后,您需要再次重启 Apache 服务以使更改生效:

systemctl restart httpd

至此,您已经成功在 CentOS 7 上配置了 Apache 服务器的 SSL 证书,并设置了 HTTP 到 HTTPS 的自动重定向。

End