一、操作场景
这篇档指导你如何在 Apache 服务器中安装国密标准 SSL 证书。
注意:说明:
二、前提条件
·已准备远程文件拷贝软件,例如 WinSCP(建议从网站获取最新版本)。
·若你需部署到腾讯云云服务器,建议使用云服务器的文件上传功能,详情请参见 上传文件到云服务器。
·已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从网站获取最新版本)。
·已购买国密标准(SM2)SSL 证书。
·安装 SSL 证书前需准备的数据如下:
| 名称 | 说明 |
| 服务器的 IP 地址 | 服务器的 IP 地址,用于 PC 连接到服务器。 |
| 用户名 | 登录服务器的用户名。 |
| 密码 | 登录服务器的密码。 |
注意:说明:
注意:在腾讯云购买的云服务器,你可以登录 云服务器控制台 获取服务器 IP 地址、用户名及密码。
三、操作步骤
注意:操作过程如果出现问题,请 联系我们。
四、环境配置
注意:说明:
1. 远程登录 Apache 服务器。例如,使用 PuTTY 工具 登录。
2. 安装编译工具:如果你的系统是全新的,请先在服务器上安装 C++ 开发环境,为编译提供环境支持。你可以使用如下命令进行安装。
yum install -y gcc yum install -y gcc-c++
3. 下载并编译安装 apr(以 apr 1.7.5 版本为例),你可以通过在服务器上输入以下命令,下载 apr 至服务器并编译安装,由于操作系统的版本不同,详细操作步骤略有区别。
#切换至 /usr/local/ 目录下cd /usr/local/ #下载 apr 1.7.5wget -c http://mirrors.tencent.com/apache/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.5 版本,以 apr-util-1.5 版本为例)。
#切换至 /usr/local/ 目录下cd /usr/local/ #下载 apr-util-1.5.4wget -c http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz#解压已下载的 apr-util-1.5.4 压缩包tar -zvxf apr-util-1.5.4.tar.gz #进入解压后的 apr-util-1.5.4 文件夹并指定编译目录路径。cd /usr/local/apr-util-1.5.4/./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr#编译安装 apr-utilmake && make install
注意:说明:
注意:执行 make 命令时如果出现 #include <expat.h> ^ compilation terminated. 报错信息,请输入命令 yum install -y expat-devel 安装依赖库。
5. 安装 pcre。你可以通过以下两种方式进行安装。
·推荐使用 yum 进行安装。
yum install -y pcre-devel
·编译安装。
#切换至 /usr/local/ 目录下cd /usr/local/ #下载 pcre-8.45wget -c https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/download#解压已下载的 pcre-8.45 压缩包tar -zvxf pcre-8.45.tar.gz#进入解压后的pcre-8.45文件夹并指定编译目录路径。cd pcre-8.45/./configure –prefix=/usr/local/pcre #编译安装 pcremake && make install
6. Apache 服务器安装:上述三个文件编译安装完成后,请下载 Apache 国密版和国密模块至 /usr/local 目录下进行编译安装。
#下载 Apache httpd-2.4.62 压缩包wget -c http://mirrors.tencent.com/apache/httpd/httpd-2.4.62.tar.gz#下载国密模块wget -c https://www.wotrus.com/download/wotrus_ssl.tar.gz#解压已下载的 wotrus_ssl 压缩包tar -zvxf wotrus_ssl.tar.gz #解压已下载的 httpd-2.4.62 压缩包tar -zvxf httpd-2.4.62.tar.gz #进入解压后的 httpd-2.4.62 文件夹并指定编译目录路径。cd httpd-2.4.62/./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/wotrus_ssl2.0 #编译安装 Apachemake && make install
五、国密标准证书安装
1. 已在 SSL 证书控制台 中下载并解压缩 cloud.tencent.com 证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。 其中包含 Apache 文件夹和 CSR 文件:
·文件夹名称:cloud.tencent.com_apache
·文件夹内容:
·root_sign_bundle.crt 证书文件
·root_encrypt_bundle.crt 证书文件
·cloud.tencent.com_sign.crt 证书文件
·cloud.tencent.com_encrypt.crt 证书文件
·cloud.tencent.com.key 私钥文件
·CSR 文件内容:
·cloud.tencent.com_sign.csr 文件
·cloud.tencent.com_encrypt.csr 文件
注意:说明:
注意:CSR 文件是申请证书时由你上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
2. 使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Apache 服务器。
注意:说明:
3. 进入 /usr/local/httpd/conf 目录,新建 cert 目录,将已获取到的 root_sign_bundle.crt 证书文件、root_encrypt_bundle.crt 证书文件、cloud.tencent.com_sign.crt 证书文件、cloud.tencent.com_encrypt.crt 证书文件以及 cloud.tencent.com.key 私钥文件从本地目录拷贝到 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 下增加 Include conf/ssl.conf 文件内容后保存并退出。
5. 在 /usr/local/httpd/conf 目录下,新建一个 ssl.conf 文件,添加如下配置:
Listen 443<VirtualHost *:443>#填写证书名称ServerName cloud.tencent.com#填写网站文件路径DocumentRoot website根目录#启用 SSL 功能SSLEngine on# SM2 证书 sign 配置SSLCertificateFile /usr/local/httpd/conf/cert/cloud.tencent.com_sign.crt SSLCertificateKeyFile /usr/local/httpd/conf/cert/cloud.tencent.com.keySSLCertificateChainFile /usr/local/httpd/conf/cert/root_sign_bundle.crt# SM2 证书 encrypt 配置SSLCertificateFile /usr/local/httpd/conf/cert/cloud.tencent.com_encrypt.crtSSLCertificateKeyFile /usr/local/httpd/conf/cert/cloud.tencent.com.keySSLCertificateChainFile /usr/local/httpd/conf/cert/root_encrypt_bundle.crt# sign 和 encrypt 配置中的 .key 为同一个#请按照以下协议配置SSLProtocol all -SSLv2 -SSLv3#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。SSLCipherSuite ECC-SM4-SM3:SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULLSSLHonorCipherOrder on<Directory "website根目录">Options -Indexes -FollowSymLinks +ExecCGIAllowOverride NoneOrder allow,denyAllow from allRequire all granted</Directory></VirtualHost>
注意:说明:
注意:以上配置内容仅为参考,具体的证书名称,证书目录,Directory 等配置请根据实际环境配置。
6. 你通过执行以下命令验证配置文件问题。
/usr/local/httpd/bin/httpd -t
·若提示 Syntax OK,则表示配置正常,可以启动 Apache 服务器。
·若提示非 Syntax OK,请你重新配置或者根据提示修改存在问题。
7. 执行以下命令重新启动 Apache 服务器,即可使用 https://cloud.tencent.com 进行访问。
/usr/local/httpd/bin/httpd -k restart
·如果浏览器地址栏显示安全锁标识,则说明证书安装成功。如下:
·如果网站访问异常,可参考以下常见问题解决方案进行处理:
·无法使用 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 目录下。
注意:说明:
2. 编辑 /usr/local/httpd/conf 目录下的 ssl.conf 文件。
3. 请在 SSLEngine on 下面换行,并添加如下内容:
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
注意:说明:
注意:以上配置内容仅为参考,具体的证书名称,证书目录,请根据实际环境配置。
4. 你通过执行以下命令验证配置文件问题。
/usr/local/httpd/bin/httpd -t
·若提示 Syntax OK ,则表示配置正常,可以启动 Apache 服务器。
·若提示非 Syntax OK ,请你重新配置或者根据提示修改存在问题。
5. 重新启动 Apache 服务器,即可解决浏览器兼容问题。