有奖捉虫:行业应用 & 管理与支持文档专题 HOT
文档中心 > SSL 证书 > 证书安装 > 国密标准(SM2)SSL 证书安装 > DNSPod > Apache 服务器国密 SSL 证书安装部署(DNSPod)

操作场景

本文档指导您如何在 Apache 服务器中安装国密标准 DNSPod SSL 证书。
说明:
国密标准 DNSPod SSL 证书目前仅支持 Linux 环境下 Apache 服务器。
本文档以证书名称 cloud.tencent.com 为例。
Apache 版本建议使用版本 apache-2.4.46 或 apache-2.4.48,您可前往 Apache 官网 进行下载或 单击此处 快速下载 apache-2.4.48。
当前服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别。
安装 SSL 证书前,请您在 Apache 服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。具体请参见 服务器如何开启443端口?
SSL 证书文件上传至服务器方法请参见 如何将本地文件拷贝到云服务器

前提条件

已准备远程文件拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。
若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器
已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
已购买国密标准(SM2)DNSPod SSL 证书。

安装 SSL 证书前需准备的数据如下:
名称
说明
服务器的 IP 地址
服务器的 IP 地址,用于 PC 连接到服务器。
用户名
登录服务器的用户名。
密码
登录服务器的密码。
说明:
在腾讯云官网购买的云服务器,您可以登录 云服务器控制台 获取服务器 IP 地址、用户名及密码。

操作步骤

环境配置

说明:
国密标准 DNSPod SSL 证书安装在 Apache 服务器上,Apache 服务器需具备相关环境支持模块。下文将指导您编译配置支持国密标准 DNSPod SSL 证书的 Apache 服务器。
下述步骤中的目录皆是测试环境的目录,具体路径请根据您的实际环境与需求进行确定。
1. 远程登录 Apache 服务器。例如,使用 PuTTY 工具 登录。
2. 安装编译依赖包:如果您的系统是全新的,请先在服务器上安装以下依赖包,为编译提供环境支持。您可以使用如下命令进行安装。
yum install -y gcc gcc-c++ wget make perl pcre-devel expat-devel bison bison-devel flex flex-devel

3. 下载并编译安装 apr(以 apr 1.7.0 版本为例),您可以通过在服务器上输入以下命令,下载 apr 至服务器并编译安装,由于操作系统的版本不同,详细操作步骤略有区别。
# 切换至 /usr/local/ 目录下
cd /usr/local/
# 下载 apr 1.7.0
wget -c http://mirrors.tencent.com/apache/apr/apr-1.7.0.tar.gz
# 解压已下载的 apr 1.7.0 压缩包
tar -zvxf apr-1.7.0.tar.gz
# 进入解压后的 apr 1.7.0 文件夹并指定编译目录路径。
cd apr-1.7.0/
./configure --prefix=/usr/local/apr
# 编译安装 apr
make && make install
4. 下载并编译安装 apr-util(以 apr-util-1.6 版本为例)。
# 切换至 /usr/local/ 目录下
cd /usr/local/
# 下载 apr-util-1.6.1
wget -c http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz
# 解压已下载的 apr-util-1.6.1 压缩包
tar -zvxf apr-util-1.6.1.tar.gz
# 进入解压后的 apr-util-1.6.1 文件夹并指定编译目录路径。
cd /usr/local/apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# 编译安装 apr-util
make && make install
5. Apache 服务安装:上述步骤编译安装完成后,请下载 Apache 国密版和国密模块至 /usr/local目录下进行编译安装。
说明:
DNSPod 国密模块文件名 gmssl_openssl_2021.1011.tar.gz 在解压与安装中请勿修改,否则可能会导致安装错误。
如果在安装 Apache 的过程中找不到 pcre、apr-util 或 apr 等相关文件,请将 /pcre/bin/apr-util/bin 或 /apr/bin 等文件加入系统路径。
# 切换至 /usr/local/ 目录下
cd /usr/local/
# 下载 Apache httpd-2.4.54 压缩包
wget -c http://mirrors.tencent.com/apache/httpd/httpd-2.4.54.tar.gz
# 下载 DNSPod 国密模块
wget -c https://certificate-1258344699.cos.ap-guangzhou.myqcloud.com/public/gmssl_openssl_2021.1011.tar.gz
# 解压已下载的 gmssl_openssl_2021.1011 压缩包
tar -zvxf gmssl_openssl_2021.1011.tar.gz
# 解压已下载的 httpd-2.4.54 压缩包
tar -zvxf httpd-2.4.54.tar.gz
# 进入解压后的 httpd-2.4.54 文件夹并指定编译目录路径。
cd httpd-2.4.54/
./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/gmssl LDFLAGS=-lm
# 编辑 build/config_vars.mk,修改 ssl 为静态链接
vi build/config_vars.mk
找到 ab_LIBS = -lssl -lcrypto -lrt -lcrypt -lpthread -ldl
替换为:ab_LIBS = /usr/local/gmssl/lib/libssl.a /usr/local/gmssl/lib/libcrypto.a -lssl -lcrypto -lrt -lcrypt -lpthread -ldl
# 编译安装 Apache
make install


国密标准证书安装

1. 已在 SSL 证书控制台 中下载并解压缩 cloud.tencent.com 证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。 其中包含 Apache 文件夹和 CSR 文件:
文件夹名称:cloud.tencent.com_apache
文件夹内容:
cloud.tencent.com.key 私钥文件
cloud.tencent.com._encrypt.crt 加密证书文件
cloud.tencent.com._encrypt.key 加密证书私钥文件
root_encrypt_bundle.crt 加密证书链文件
cloud.tencent.com._sign.crt 签名证书文件
cloud.tencent.com._sign.key 签名证书私钥文件
root_sign_bundle.crt 签名证书链文件
CSR 文件内容:
cloud.tencent.com._sign.csr 文件
说明:
CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
2. 使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Apache 服务器。
说明:
WinSCP 上传文件操作可参考 通过 WinSCP 上传文件到 Linux 云服务器
若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器
3. 进入 /usr/local/httpd/conf 目录,新建 cert 目录。
cd /usr/local/httpd/conf/
mkdir cert
将已获取到的 cloud.tencent.com.key 私钥文件、cloud.tencent.com._encrypt.crt 加密证书文件、cloud.tencent.com._encrypt.key 加密证书私钥文件、root_encrypt_bundle.crt 加密证书链文件、cloud.tencent.com._sign.crt 签名证书文件、cloud.tencent.com._sign.key 签名证书私钥文件、root_sign_bundle.crt 签名证书链文件 从本地目录拷贝到 Apache 服务器的 /usr/local/httpd/conf/cert 目录下。
4. 进入 /usr/local/httpd/conf 目录,按照以下步骤编辑 httpd.conf 文件:
4.1  请在 #ServerName www.example.com:80 下增加 ServerName(您的域名):80
4.2 请去掉 LoadModule ssl_module modules/mod_ssl.so 前的 #
4.3 请去掉 Include conf/extra/httpd-ssl.conf 前的 #
5. 编辑 /usr/local/httpd/conf/extra/httpd-ssl.conf 文件,进行以下修改:
# 编辑文件 
vi /usr/local/httpd/conf/extra/httpd-ssl.conf
5.1 注释掉所有带 SSLSessionCache 的配置行,即在前面加上 #
5.2 注释掉默认证书和key,即在前面加上 #,参考如下:
# SSLCertificateFile "/usr/local/httpd/conf/server.crt"
# SSLCertificateKeyFile "/usr/local/httpd/conf/server.key"
5.3 文件中添加以下配置内容:
# 配置算法
SSLCipherSuite HIGH:ECC-SM4-SM3:ECDHE-SM4-SM3
# 签名证书/私钥/证书链
SSLCertificateFile "/usr/local/httpd/conf/cert/cloud.tencent.com._sign.crt"
SSLCertificateKeyFile "/usr/local/httpd/conf/cert/cloud.tencent.com._sign.key"
SSLCertificateChainFile "/usr/local/httpd/conf/cert/root_sign_bundle.crt"
# 加密证书/私钥/证书链
SSLCertificateFile "/usr/local/httpd/conf/cert/cloud.tencent.com._encrypt.crt"
SSLCertificateKeyFile "/usr/local/httpd/conf/cert/cloud.tencent.com._encrypt.key"
SSLCertificateChainFile "/usr/local/httpd/conf/cert/root_encrypt_bundle.crt"

6. 配置国密 license 许可
请在 SSL 证书管理控制台 国密 DNSPod 证书详情页下载国密 license 文件(文件名: gmssl_xxxx.lic)到本地目录,并将其上传到  Apache 服务器的 /etc 目录下。
 7. 您可通过执行以下命令验证配置文件问题。
/usr/local/httpd/bin/httpd -t
若提示 Syntax OK,则表示配置正常,可以启动 Apache 服务。
若提示非 Syntax OK,请您重新配置或者根据提示修改存在问题。
 8. 执行以下命令启动 Apache 服务,即可使用https://cloud.tencent.com进行访问。
/usr/local/httpd/bin/httpd -k start
如果浏览器地址栏显示安全锁标识,则说明证书安装成功。如下图所示:



如果网站访问异常,可参考以下常见问题解决方案进行处理:

国际标准证书与国密标准证书双安装(可选)

若您需要通过国际标准证书与国密标准证书双证书安装的方式解决浏览器兼容性问题。您可以通过以下操作设置:
说明:
腾讯云提供免费的 DV 型 SSL 证书以供购买了国密标准 DNSPod 证书的用户顺利解决浏览器兼容问题。申请证书请参见 域名型(DV)免费 SSL 证书
1. 使用 “WinSCP”(即本地与远程计算机间的复制文件工具),将已获取到的国际标准证书中的 1_root_bundle.crt 证书文件、2_cloud.tencent.com.crt 证书文件以及 3_cloud.tencent.com.key 私钥文件从本地目录拷贝到 Apache 服务器的 /usr/local/httpd/conf/cert 目录下。
说明:
WinSCP 上传文件操作请参见 通过 WinSCP 上传文件到 Linux 云服务器
若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器
2. 编辑 /usr/local/httpd/conf/extra/ 目录下的 httpd-ssl.conf 文件,并添加如下内容:
SSLCertificateFile /usr/local/httpd/conf/cert/2_cloud.tencent.com.crt
SSLCertificateKeyFile /usr/local/httpd/conf/cert/3_cloud.tencent.com.key
SSLCertificateChainFile /usr/local/httpd/conf/cert/1_root_bundle.crt
3. 您通过执行以下命令验证配置文件问题。
/usr/local/httpd/bin/httpd -t
若提示 Syntax OK ,则表示配置正常,可以启动 Apache 服务器。
若提示非 Syntax OK ,请您重新配置或者根据提示修改存在问题。
4. 重新启动 Apache 服务,即可解决浏览器兼容问题。
/usr/local/httpd/bin/httpd -k restart
说明:
操作过程如果出现问题,请您 联系我们