国密标准(SM2)ssl证书安装

Apache沃通国密证书安装(Linux)

环境准备

目前仅支持 Linux 环境下 Apache;

  • Linux 操作系统;
  • Apache 下载链接:http://httpd.apache.org/download.cgi;
  • 国密 SM2 模块(根据系统版本,提供 V1 和 V2 两种版本国密模块,以 Centos为例)
  • Centos 6 及以下版本:https://www.wotrus.com/download/wotrus_ssl_v1.tar.gz
  • Centos 7 及以上版本: https://www.wotrus.com/download/wotrus_ssl.tar.gz
一、安装证书

1.安装 Apache(文档以 apache-2.4.46 为例,目录为/usr/local,用户根据实际环境操作即可);

安装 apache 之前,先安装相关的依赖库,如果系统是全新的,请先安装gcc/gcc-c++:

yum install -y gcc gcc-c++

2.安装 apr:http://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz,下载并上传 apr-1.7.0.tar.gz 至/usr/local 目录下:

编译安装:

解压:tar -zvxf apr-1.7.0.tar.gz
检测:cd apr-1.7.0
./configure --prefix=/usr/local/apr
编译:make && make install

3.安装 apr-util:http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz,下载并上传至/usr/local 目录下:(推荐使用 apr-util-1.5 的版本,1.6 的兼容性有问题)

解压:tar -zvxf apr-util-1.5.4.tar.gz
检测:cd apr-util-1.5.4
./configure	--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
编译:make && make install

Ps:make 时如果出现#include <expat.h> ^ compilation terminated.的报错,请 yum install -y expat-devel 安装依赖库。

4.安装 pcre:连网状态下,可执行命令 yum install -y pcre-devel 或者通过https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz 下载并上传至/usr/local 目录下

编译安装:

解压:tar -zvxf pcre-8.43.tar.gz
检测:cd pcre-8.43
./configure --prefix=/usr/local/pcre
编译:make && make install

5.上述三个文件编译安装完成后,将下载的 apache 国密版和国密模块也上传至/usr/local 目录下:

解压:tar -zvxf wotrus_ssl.tar.gz
tar -zvxf apache-2.4.46.tar.gz
检测:cd apache-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/wotrus_ssl	(v1 版本为
wotrus_ssl,v2 版本为wotrus_ssl2)

  • Ps:以上只编译了部分模块,如有需求,请用户自行添加需要的模块编译:make make install
  • Ps:上述步骤中的目录皆是测试环境的目录,具体路径,请根据实际用户环境!
二、配置 SSL

1、下载 SSL 证书,申请证书后,将下载得到三个.zip 的压缩包,分别是 RSA 证书,SM2 签名证书和加密证书,分别解压得到 for apache.zip/ApacheServer 里面的 crt文件;

2、上传 SSL 证书,cd 进入/usr/local/httpd/conf,新建 cert 目录,将上面解压的 crt文件以及创建CSR 时生成的两个.key 文件(分别是rsa 和sm2 命名的key 文件)上传至该目录;

3、配置 SSL 证书,进入/usr/local/httpd/conf,vi/vim 编辑 httpd.conf 文件,找到 #LoadModule ssl_module modules/mod_ssl.so,去掉前面的注释符#,增加 Include conf/ssl.conf,保存退出后在/usr/local/httpd/conf,vi/vim 新建一个 ssl.conf 文件,增加如下配置:

Listen 443
<VirtualHost *:443> 
ServerName	domain.com 
DocumentRoot	website 根目录 
SSLEngine on
#RSA config
SSLCertificateFile	/usr/local/httpd/conf/domain.com.crt 
SSLCertificateKeyFile	/usr/local/httpd/conf/domain.com_rsa.key SSLCertificateChainFile	/usr/local/httpd/conf/root_bundle.crt #SM2 sign config
SSLCertificateFile	/usr/local/httpd/conf/domain.com_sign.crt 
SSLCertificateKeyFile	/usr/local/httpd/conf/domain.com_sm2.key SSLCertificateChainFile	/usr/local/httpd/conf/bundle.crt
#SM2 encrypt config
SSLCertificateFile	/usr/local/httpd/conf/domain.com_en.crt
SSLCertificateKeyFile	/usr/local/httpd/conf/domain.com_sm2.key SSLCertificateChainFile	/usr/local/httpd/conf/bundle.crt
#sign 和 encrypt 配置中的.key 和 bundle.crt 为同一个
SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite
ECC-SM4-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>

以上仅为参考(http 的配置请自行处理),具体的 ServerName,证书名称,证书目录,Directory 等配置请根据实际环境配置!

4、检测SSL

以上仅为参考(http 的配置请自行处理),具体的 ServerName,证书名称,证书目录,Directory 等配置请根据实际环境配置!如果有提示错误,请根据提示排查错误,直到显示正常!

启动:执行/usr/local/httpd/bin/httpd -k start,启动 apache!检测SSL 配置

下载沃通密信浏览器测试https 访问,下载地址:https://www.mesince.com/zh-cn/browser下载安装后,打开浏览器,在地址栏输入 https://domain.com(证书实际绑定域名)测试是否能正常访问以及显示小绿锁,如无法正常访问,请确保防火墙或安全组等策略有放行 443端口(SSL 配置端口)。

Nginx沃通国密证书安装(Linux)

环境准备
  • Linux 操作系统;
  • Nginx -1.14.2 及以上版本(推荐使用最新稳定版),附下载链接:http://nginx.org/en/download.html;
  • 国密 SM2 模块(根据系统版本,提供 V1 和 V2 两种版本国密模块,以 Centos为例)
  • Centos 6 及以下版本:https://www.wotrus.com/download/wotrus_ssl_v1.tar.gz;
  • Centos 7 及以上版本: https://www.wotrus.com/download/wotrus_ssl.tar.gz
  • 沃通国密 SM2 SSL 证书;
一、安装证书

安装Nginx(文档以nginx-1.15.12 为例,目录为/usr/local,用户根据实际环境 操作即可)

在安装nginx 前,需要确保系统安装了gcc-c++、pcre-devel 和zlib-devel 软件。将上述步骤下载的nginx 压缩包和 wotrus_ssl.tar.gz,上传至linux 操作系统/usr/local/目录下,分别解压;

cd 进入nginx 的解压目录usr/local/nginx-1.15.12,
执行./configure
--prefix=/usr/local/nginx	--with-http_stub_status_module	--with-stream
--with-http_ssl_module	--with-stream_ssl_module
--with-openssl=/usr/local/wotrus_ssl	(v1 版本为wotrus_ssl,v2 版本为wotrus_ssl2)(这里只指定了几个需要的模块,其他模块用户可自行增加)

上述步骤执行完成后,再输入make && make install,编译 nginx。执行该 步骤后,若无报错,则表示编译成功,可以开始配置证书;如果执行过程中出现 如上图显示的错误,则需要进入 nginx-1.15.12/auto/lib/openssl 目录,vi/vim 编辑 conf 文件(可先备份),找到下面所示的四行代码:

CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" 
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" 
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" 
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
改为
CORE_INCS="$CORE_INCS $OPENSSL/include" 
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h" 
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a" 
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"

保存后,先执行 make clean,再重新执行./configure 和 make && make install;

编译完成后,cd 进入/usr/local/nginx 目录,用/usr/local/nginx/sbin/nginx -t 检测是否正常,正常则输入usr/local/nginx/sbin/nginx启动 nginx;

Ps:上述步骤中的目录皆是测试环境的目录,具体路径,请根据实际用户环境!

二、配置SSL

1.下载 SSL 证书,解压下载的 domain.com_sm2zip 压缩包,Nginx 配置需要文件如下:

domain.com_rsa 下 for nginx.zip 解压出来的 crt 文件,Domain.com_sign 下 NginxServer 中的 crt 文件 Domain.com_encrypt 下 NginxServer 中的 crt 文件

2.上传 SSL 证书,cd 进入/usr/local/nginx/conf,新建 sm2 目录,将上面的三个crt 文件以及创建CSR 时生成的两个.key 文件上传至该目录;

3.配置 SSL 证书,进入/usr/local/nginx/conf,vi/vim 编辑 nginx.conf 文件,增加如下配置,然后保存

server {

	listen	443 ssl; 
	server_name domain.com;
	ssl_certificate	/usr/local/nginx/conf/sm2/domain.com_rsa.crt; 
	ssl_certificate_key	/usr/local/nginx/conf/sm2/domain.com_rsa.key;
	
	ssl_certificate	/usr/local/nginx/conf/sm2/domain.com_sign.crt; 
	ssl_certificate_key	/usr/local/nginx/conf/sm2/domain.com_sm2.key;

	ssl_certificate	/usr/local/nginx/conf/sm2/domain.com_en.crt; 
	ssl_certificate_key	/usr/local/nginx/conf/sm2/domain.com_sm2.key;
	#先配置签名证书,再配置加密证书,签名加密证书私钥 key 为同一个!
	ssl_session_timeout	5m;
	ssl_protocols	TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers ECC-SM4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL;
	ssl_prefer_server_ciphers	on;

	location / {
		root	html;
		index	index.html index.htm;
	}
}

以上仅为参考,具体的server_name,证书名称,证书存放目录,location 等配置请根据实际环境配置!

4.检测,执行/usr/local/nginx/sbin/nginx -t,看配置是否正常,正常显示如下图: 如果有提示错误,请根据提示排查错误,直到显示正常!

5.重启nginx:执行/usr/local/nginx/sbin/nginx -s reload,重启nginx!检测SSL 配置 下载沃通密信浏览器测试 https 访问,下载地址:https://www.mesince.com/zh-cn/browser下载安装后,打开浏览器,在地址栏输入https://domain.com(证书实际绑定域名)测试是否能正常访问以及显示小绿锁,如无法正常访问,请确保防火墙或安全组等策略有放行443端口(SSL 配置端口)

Nginx服务沃通国密证书安装(Winodws)

环境准备
  • Windows 操作系统;
  • Nginx 国密版,附下载链接:
  • 64 位操作系统:https://www.wotrus.com/download/gm_nginx-1.16.1.zip
  • 32 位操作系统:https://www.wotrus.com/download/gm_nginx-1.18.0.zip
  • 沃通国密 SM2 SSL 证书;
一、安装证书

安装和配置 Nginx(文档以 nginx-1.16.0(x64)/nginx-1.17.0(x86)为例,目录为 D:\gmssl,用户根据实际环境操作即可)

  • (1)根据操作系统版本(32/64 位),选择对应的 nginx 压缩包,复制到服务器上,并解压到相应的目录,如 d:\gmssl;
  • (2)在 nginx 的目录下(如 conf)创建存放证书的文件夹,如 ssl;
  • (3)解压从沃通下载的证书压缩包,将每个压缩包 for nginx 中的 crt 文件和创建 CSR 时保存的.key 文件放到第(2)步创建的文件夹下(共三个.crt,两个.key);
  • (4)编辑 nginx/conf 目录下nginx.conf 文件,在http{}中,添加 include ssl.conf;
  • (5)在 nginx/conf 目录下,新建 ssl.conf 文件;
  • (6)编辑新建的 ssl.conf 文件,添加证书配置,如下所示:
server {
	listen	443 ssl; 
	server_name		domain.com;
	ssl_certificate	 d:/gmssl/nginx-1.16.0/conf/ssl/domain.com_rsa.crt; 				ssl_certificate_key	d:/gmssl/nginx-1.16.0/conf/ssl/domain.com_rsa.key;

	ssl_certificate	 d:/gmssl/nginx-1.16.0/conf/ssl/domain.com_sign.crt; 
	ssl_certificate_key	d:/gmssl/nginx-1.16.0/conf/ssl/domain.com_sm2.key;

	ssl_certificate	 d:/gmssl/nginx-1.16.0/conf/ssl/domain.com_en.crt; 
	ssl_certificate_key	d:/gmssl/nginx-1.16.0/conf/ssl/domain.com_sm2.key;
	#先配置签名证书,再配置加密证书,签名加密证书私钥 key 为同一个!
	ssl_session_timeout	5m;
	ssl_protocols	TLSv1 TlSv1.1 TLSv1.2; ssl_ciphers SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:! eNULL;
	ssl_prefer_server_ciphers	on;


	Location / {
		root	html;
		index	index.html index.htm;

	}
}

PS:建议用 Administrator 账户配置证书,若用非管理员权限账户配置,可能出现找不到证书的错误!以上配置仅为参考,具体的 server_name,证书名称,证书存放目录,location 等配置请根据实际环境配置!

测试,在服务器 dos 命令下,cd 进入 nginx 目录,如 cd d:\gmssl\nginx-1.16.0,输入 nginx -t,检测 nginx 配置是否正常,正常显示如下图: 如果有提示错误,请根据提示排查错误,直到显示正常!

启动 nginx:进入 nginx 目录,双击运行 nginx.exe

检测SSL 配置 下载沃通密信浏览器测试 https 访问,下载地址:https://www.mesince.com/zh-cn/browser下载安装后,打开浏览器,在地址栏输入https://domain.com(证书实际绑定域名)测试是否能正常访问以及显示小绿锁,如无法正常访问,请确保防火墙或安全组等策略有放行443端口(SSL 配置端口)