操作场景
注意:说明:
前提条件
·已准备远程文件拷贝软件,例如 WinSCP(建议从网站获取最新版本)。
若你需部署到腾讯云云服务器,建议使用云服务器的文件上传功能,详情请参见 上传文件到云服务器。
·已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从网站获取最新版本)。
·已购买国密标准(SM2)DNSPod SSL 证书。
·安装 SSL 证书前需准备的数据如下:
| 名称 | 说明 |
| 服务器的 IP 地址 | 服务器的 IP 地址,用于 PC 连接到服务器。 |
| 用户名 | 登录服务器的用户名。 |
| 密码 | 登录服务器的密码。 |
注意:说明:
注意:在腾讯云购买的云服务器,你可以登录 云服务器控制台 获取服务器 IP 地址、用户名及密码。
操作步骤
注意:说明:
注意:操作过程如果出现问题,请你 联系我们。
一、环境配置
注意:说明:
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.5 版本为例),你可以通过在服务器上输入以下命令,下载 apr 至服务器并编译安装,由于操作系统的版本不同,详细操作步骤略有区别。
# 切换至 /usr/local/ 目录下cd /usr/local/ # 下载 apr 1.7.5wget -c https://archive.apache.org/dist/apr/apr-1.7.5.tar.gz# 解压已下载的 apr 1.7.5 压缩包tar -zvxf apr-1.7.5.tar.gz# 进入解压后的 apr 1.7.5 文件夹并指定编译目录路径。cd apr-1.7.5/./configure –prefix=/usr/local/apr# 编译安装 aprmake && make install
4. 下载并编译安装 apr-util(以 apr-util-1.6 版本为例)。
# 切换至 /usr/local/ 目录下cd /usr/local/ # 下载 apr-util-1.6.1wget -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-utilmake && 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.46 压缩包wget -c https://archive.apache.org/dist/httpd/httpd-2.4.46.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.46 压缩包tar -zvxf httpd-2.4.46.tar.gz# 进入解压后的 httpd-2.4.46 文件夹并指定编译目录路径。cd httpd-2.4.46/./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# 编译安装 Apachemake 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 服务器。
注意:说明:
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
·如果浏览器地址栏显示安全锁标识,则说明证书安装成功。如下:
·如果网站访问异常,可参考以下常见问题解决方案进行处理:
·无法使用 HTTPS 访问网站
·部署 SSL 证书后,浏览器提示 “网站连接不安全”
·访问站点提示连接不安全?
·SSL 证书过期后重新申请部署依然提示 HTTPS 不安全?
·在服务器上部署 SSL 证书后访问资源出现 404 报错
三、国际标准证书与国密标准证书双安装(可选)
若你需要通过国际标准证书与国密标准证书双证书安装的方式解决浏览器兼容性问题。你可以通过以下操作设置:
注意:说明:
注意:腾讯云提供免费的 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 目录下。
2. 编辑 /usr/local/httpd/conf/extra/ 目录下的 httpd-ssl.conf 文件,并添加如下内容:
SSLCertificateFile /usr/local/httpd/conf/cert/2_cloud.tencent.com.crtSSLCertificateKeyFile /usr/local/httpd/conf/cert/3_cloud.tencent.com.keySSLCertificateChainFile /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