环境配置
国密标准 SSL 证书安装在 Apache 服务器上,Apache 服务器需具备相关环境支持模块。
下述步骤中的目录皆是测试环境的目录,具体路径请根据您的实际环境与需求进行确定。
2.安装编译工具:如果您的系统是全新的,请先在服务器上安装 C++ 开发环境,为编译提供环境支持。您可以使用如下命令进行安装。
yum install -y gcc
yum install -y gcc-c++
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.5 版本,以 apr-util-1.5 版本为例)。
#切换至 /usr/local/ 目录下
cd /usr/local/
#下载 apr-util-1.5.4
wget -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-util
make && 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.43
wget -c https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
#解压已下载的 pcre-8.43 压缩包
tar -zvxf pcre-8.43.tar.gz
#进入解压后的pcre-8.43文件夹并指定编译目录路径。
cd pcre-8.43/./configure --prefix=/usr/local/pcre
#编译安装 pcre
make && make install
6. Apache 服务器安装:上述三个文件编译安装完成后,请下载 Apache 国密版和国密模块至 /usr/local 目录下进行编译安装。
国密模块文件名请不要修改,否则会导致错误。
如果在安装 Apache 的过程中找不到 pcre、apr-util 或 apr 等相关文件,请将 /pcre/bin
、/apr-util/bin
或 /apr/bin
等文件加入系统路径。
#下载 Apache httpd-2.4.48 压缩包
wget -c http://mirrors.tencent.com/apache/httpd/httpd-2.4.48.tar.gz
#下载国密模块
wget -c 这里是国密模块的链接
#解压已下载的 模块名称_ssl 压缩包
tar -zvxf 模块名称_ssl.tar.gz
#解压已下载的 httpd-2.4.48 压缩包
tar -zvxf httpd-2.4.48.tar.gz
#进入解压后的 httpd-2.4.48 文件夹并指定编译目录路径。
cd httpd-2.4.48/
./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
#编译安装 Apache
make && make install
国密标准证书安装
1. 下载并解压缩 22.cn
证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。 其中包含 Apache 文件夹:
内容:
1_root_sign_bundle.crt
证书文件
2_root_encrypt_bundle.crt
证书文件
3_cloud.tencent.com_sign.crt
证书文件
4_cloud.tencent.com_encrypt.crt
证书文件
5_cloud.tencent.com.key
私钥文件
2.进入 /usr/local/httpd/conf
目录,新建 cert
目录,将已获取到的 1_root_sign_bundle.crt
证书文件、2_root_encrypt_bundle.crt
证书文件、3_cloud.tencent.com_sign.crt
证书文件、4_cloud.tencent.com_encrypt.crt
证书文件以及 5_cloud.tencent.com.key
私钥文件从本地目录拷贝到 Apache 服务器的 /usr/local/httpd/conf/cert
目录下。
3.进入 /usr/local/httpd/conf
目录,按照以下步骤编辑 httpd.conf
文件:
3.1 请在 #ServerName www.example.com:80 下增加 ServerName(您的域名):80。
3.2 请去掉 LoadModule ssl_module modules/mod_ssl.so 前的 #。
3.3 请在 #Include conf/extra/httpd-ssl.conf 下增加 Include conf/ssl.conf 文件内容后保存并退出。
4.在 /usr/local/httpd/conf 目录下,新建一个 ssl.conf 文件,添加如下配置:
Listen 443
<VirtualHost *:443>
#填写证书名称
ServerName 22.cn
#填写网站文件路径
DocumentRoot website根目录
#启用 SSL 功能
SSLEngine on
# SM2 证书 sign 配置
SSLCertificateFile /usr/local/httpd/conf/cert/3_22.cn_sign.crt
SSLCertificateKeyFile /usr/local/httpd/conf/cert/5_22.cn.key
SSLCertificateChainFile /usr/local/httpd/conf/cert/1_root_sign_bundle.crt
# SM2 证书 encrypt 配置
SSLCertificateFile /usr/local/httpd/conf/cert/4_22.cn_encrypt.crt
SSLCertificateKeyFile /usr/local/httpd/conf/cert/5_22.cn.key
SSLCertificateChainFile /usr/local/httpd/conf/cert/2_root_encrypt_bundle.crt
# sign 和 encrypt 配置中的 .key 为同一个
#请按照以下协议配置
SSLProtocol all -SSLv2 -SSLv3
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
SSLCipherSuite SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL
SSLHonorCipherOrder on
<Directory "website根目录">
Options -Indexes -FollowSymLinks +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
具体的证书名称,证书目录,Directory
等配置请根据实际环境配置。
5.您通过执行以下命令验证配置文件问题。
/usr/local/httpd/bin/httpd -t
若提示 Syntax OK
,则表示配置正常,可以启动 Apache 服务器。
若提示非 Syntax OK
,请您重新配置或者根据提示修改存在问题。
6.执行以下命令重新启动 Apache 服务器。
/usr/local/httpd/bin/httpd -k restart
如果浏览器地址栏显示安全锁标识,则说明证书安装成功。