一、操作场景
注意:说明:
注意:这篇档以通过腾讯云 SSL 证书服务申请的证书为例。腾讯云 SSL 证书服务相关信息可参见 SSL 证书产品介绍、SSL 证书购买指南 和 申请免费 SSL 证书。
二、前提条件
·已准备文件远程拷贝软件,例如 WinSCP(建议从网站获取最新版本)。
·已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从网站获取最新版本)。
·轻量应用服务器创建完成后,防火墙默认已开启 443 端口。建议你在安装 SSL 证书前,前往防火墙页面确认已开启 443 端口,避免证书安装后无法启用 HTTPS。详情请参见 管理防火墙。
·安装 SSL 证书前需准备的数据如下:
| 名称 | 说明 |
| 轻量应用服务器的公网 IP 地址 | 服务器的 IP 地址,用于本地计算机连接到服务器。 |
| 用户名 | 登录轻量应用服务器操作系统的用户名,例如 root。 |
| 密码或 SSH 密钥 | 登录轻量应用服务器操作系统所使用的用户名对应的密码,或者已绑定的 SSH 密钥。 |
注意:你可以登录 轻量应用服务器控制台 找到对应的服务器实例,进入实例详情页查看服务器的公网 IP 地址。如果该实例创建后未执行重置密码或者绑定 SSH 密钥操作,请你执行重置密码操作并牢记密码,或绑定 SSH 密钥并保存私钥文件。详情请参见 重置密码 和 绑定密钥。
三、证书安装
1. 前往 SSL 证书管理控制台,下载并解压缩 SSL 证书(名称以 cloud.tencent.com 为例)文件压缩包到本地目录。
解压缩后,获得相关类型的证书文件。其中包含 Apache 文件夹和 CSR 文件:
·文件夹名称:Apache
·文件夹内容:
·root_bundle.crt 证书文件
·cloud.tencent.com.crt 证书文件
·cloud.tencent.com.key 私钥文件
·CSR 文件内容:cloud.tencent.com.csr 文件
注意:说明:
注意:CSR 文件是申请证书时由你上传或系统在线生成的,用于提供给 CA 机构。安装时可忽略该文件。
2. 参见 使用 OrcaTerm 登录 Linux 实例,登录轻量应用服务器。
3. 依次执行以下命令,进入 Apache 安装目录并创建 ssl 文件夹。
cd /usr/local/lighthouse/softwares/apache
sudo mkdir ssl
4. 将已获取到的 root_bundle.crt 证书文件、cloud.tencent.com.crt 证书文件以及 cloud.tencent.com.key 私钥文件从本地目录拷贝到已创建的 /usr/local/lighthouse/softwares/apache/ssl 目录下。你可参见 如何将本地文件拷贝到轻量应用服务器 上传证书文件。
5. 执行以下命令,编辑配置文件 httpd.conf。
sudo vim /usr/local/lighthouse/softwares/apache/conf/httpd.conf
6. 按 i 进入编辑模式,进行如下修改:
6.1 删除 #LoadModule ssl_module modules/mod_ssl.so 行首的 #。
6.2 删除 #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 行首的 #。
6.3 将 ServerName localhost 中的 localhost 替换为证书名称。这篇修改后示例如下:
ServerName cloud.tencent.com
6.4 删除 #Include conf/extra/httpd-ssl.conf 行首的 #。
7. 按 Esc 并输入 :wq,保存修改。
8. 执行以下命令,修改配置文件 httpd-ssl.conf。
sudo vim /usr/local/lighthouse/softwares/apache/conf/extra/httpd-ssl.conf
9. 按 i 进入编辑模式,在 <VirtualHost _default_:443> 中进行如下修改:
9.1 将 ServerName www.example.com:443 中的 www.example.com:443 替换为证书名称。这篇修改后示例如下:
ServerName cloud.tencent.com
9.2 修改证书文件路径:
SSLCertificateFile "/usr/local/lighthouse/softwares/apache/ssl/cloud.tencent.com.crt"SSLCertificateKeyFile "/usr/local/lighthouse/softwares/apache/ssl/cloud.tencent.com.key"SSLCertificateChainFile "/usr/local/lighthouse/softwares/apache/ssl/root_bundle.crt"
9.3 以下 <Directory> 路径应与 HTTPS 站点的实际 DocumentRoot 配置一致,请根据实际环境修改。
<Directory "/usr/local/lighthouse/softwares/apache/htdocs"> Options Indexes FollowSymLinks AllowOverride all Require all granted</Directory>
10. 按 Esc 并输入 :wq,保存修改。
11. 执行以下命令,重启 Apache 服务。
sudo /usr/local/lighthouse/softwares/apache/bin/httpd -k restart
重启成功后即可使用 https://cloud.tencent.com 进行访问。如下:
四、设置 HTTP 请求自动跳转 HTTPS(可选)
你可以通过配置服务器,让其自动将 HTTP 的请求重定向到 HTTPS。可以参考以下步骤进行设置:
1. 执行以下命令,编辑配置文件 httpd.conf。
sudo vim /usr/local/lighthouse/softwares/apache/conf/httpd.conf
2. 按 i 进入编辑模式,进行如下修改:
2.1 删除 #LoadModule rewrite_module modules/mod_rewrite.so 行首的 #。
2.2 在 httpd.conf 中找到 HTTP 站点网站根目录对应的 <Directory> 配置块,在其中增加以下内容。目录路径请以该站点实际的 DocumentRoot 配置为准;这篇以 /usr/local/lighthouse/softwares/apache/htdocs 为例。
RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
修改完成后如下:
3. 按 Esc 并输入 :wq,保存修改。
4. 执行以下命令,重启 Apache 服务。
sudo /usr/local/lighthouse/softwares/apache/bin/httpd -k restart
至此已成功设置 HTTPS 的自动跳转,你可使用 http://cloud.tencent.com 自动跳转至 HTTPS 页面。