本文档指导您如何在 Apache 服务器中安装 SSL 证书。
说明:
本文档以证书名称 cloud.trustyssl.com
为例。
Apache 版本以 Apache/2.4.6
为例。默认端口为 80
。您可前往 Apache 官网 进行下载,若您需要采用其余版本,请您 联系我们。
当前服务器的操作系统为 CentOS 7(ubuntu 系统也可参考此文),由于操作系统的版本不同,详细操作步骤略有区别。
安装 SSL 证书前,请您在 Apache 服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。
SSL 证书文件上传至服务器方法可百度下 如何将本地文件拷贝到云服务器。
已准备远程文件拷贝软件,例如 WinSCP(建议从官方网站获取版本)。 若您部署到腾讯云云服务器,建议使用云服务器的文件上传功能。
已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
已在当前服务器中安装配置 Apache 服务。
安装 SSL 证书前需准备的数据如下:
名称 | 说明 |
服务器的 IP 地址 | 服务器的 IP 地址,用于 PC 连接到服务器。 |
用户名 | 登录服务器的用户名。 |
密码 | 登录服务器的密码。 |
注意:
从邮箱获取证书 , 或者在申请证书的网页 页面有下载证书按钮。
解压缩后,可获得相关类型的证书文件。其中包含 cloud.trustyssl.com_nginx
文件夹:
文件夹名称:nginx_PEM 或者 nginx
文件夹内容:
cloud.trustyssl.com_bundle.crt
证书文件
cloud.trustyssl.com_bundle.pem
证书文件
cloud.trustyssl.com.key
私钥文件
cloud.trustyssl.com.csr
CSR 文件
说明:
CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
3. 使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Apache 服务器。
说明:
WinSCP 上传文件操作可参考 通过 WinSCP 上传文件到 Linux 云服务器。
若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。 上传文件到云服务器。
4. 将已获取到的 root_bundle.crt
证书文件、cloud.trustyssl.com.crt
证书文件以及 cloud.trustyssl.com.key
私钥文件从本地目录拷贝到 Apache 服务器的 /etc/httpd/ssl
目录下。
说明:
若无 /etc/httpd/ssl
目录,可通过 mkdir -p /etc/httpd/ssl
命令行创建。
5. 远程登录 Apache 服务器。例如,使用 PuTTY 工具 登录。
说明:
首次安装的 Apache 服务器,conf.d
、conf
、conf.modules.d
等目录默认在 /etc/httpd
目录下。
6. 在 /etc/httpd/conf
目录下的 httpd.conf 配置文件找到 Include conf.modules.d/*.conf
(用于加载配置 SSL 的配置目录)配置语句,并确认该配置语句未被注释。若已注释,请去掉首行的注释符号(#
),保存配置文件。
7. 在 /etc/httpd/conf.modules.d
目录下的 00-ssl.conf 配置文件找到 LoadModule ssl_module modules/mod_ssl.so
(用于加载 SSL 模块)配置语句,并确认该配置语句未被注释,若已注释,请去掉首行的注释符号(#
),保存配置文件。
注意:
由于操作系统的版本不同,目录结构也不同,请根据实际操作系统版本进行查找。
若以上配置文件中均未找到 LoadModule ssl_module modules/mod_ssl.so
和 Include conf.modules.d/*.conf
配置语句,请确认是否已经安装 mod_ssl.so 模块。若未安装 mod_ssl.so 模块,您可通过执行yum install mod_ssl
命令进行安装。
8. 编辑 /etc/httpd/conf.d
目录下的 ssl.conf 配置文件。修改如下内容:
<VirtualHost 0.0.0.0:443> DocumentRoot "/var/www/html" #填写证书名称 ServerName cloud.trustyssl.com #启用 SSL 功能 SSLEngine on #证书文件的路径 SSLCertificateFile /etc/httpd/ssl/cloud.trustyssl.com.crt #私钥文件的路径 SSLCertificateKeyFile /etc/httpd/ssl/cloud.trustyssl.com.key #证书链文件的路径 SSLCertificateChainFile /etc/httpd/ssl/root_bundle.crt </VirtualHost>
9. 重新启动 Apache 服务器,即可使用 https://cloud.trustyssl.com
进行访问。
如果浏览器地址栏显示安全锁标识,则说明证书安装成功。如下图所示:
如果您需要将 HTTP 请求自动重定向到 HTTPS,您可以通过以下操作设置:
1. 编辑 /etc/httpd/conf
目录下的 httpd.conf 配置文件。
注意:
Apache 的版本不同,目录结构也会有所区别。具体请您参阅 Apache 官方 rewrite 的文档。
httpd.conf 配置文件所在目录不唯一,您可以根据 /etc/httpd/*
逐一查找。
2. 请确认该配置文件是否存在LoadModule rewrite_module modules/mod_rewrite.so
。
若存在,请去掉LoadModule rewrite_module modules/mod_rewrite.so
前面的注释符号(#
)号。并执行 步骤4。
若不存在,请执行 步骤3。
3. 请您在/etc/httpd/conf.modules.d
中新建一个 *.conf 文件,例如 00-rewrite.conf。在新建文件中添加以下内容:
LoadModule rewrite_module modules/mod_rewrite.so
4. 在 httpd.conf 配置文件中添加如下内容:
<Directory "/var/www/html"> # 新增 RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] </Directory>
5.重新启动 Apache 服务器,即可使用 http://cloud.trustyssl.com
进行访问。