搭建商用密码 HTTPS服务——真正全网最完整方案

一、准备工作:

环境:Linux
系统版本:CentOS7 64位

在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel
安装命令:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

二、下载所需资源

采用开源国密算法,由江南天安发布的tassl,和改造后的Nginx。项目地址如下:

https://github.com/jntass/TASSL-1.1.1b
https://github.com/jntass/Nginx_Tassl

Nginx_Tassl 2020年6月版本有误,后面解释。
这个是可用的版本

三、安装TASSL 和 Nginx

1.首先在linux系统中安装TASSL
(1) 安装过程
tar xvf TASSL-1.1.1b-0.8.tar.gz

cd TASSL-1.1.1b-0.8

chmod u+x ./config

./config --prefix=/root/lib_r/tassl

make

make install

(2) 运行、测试过程
进入安装目录,除了标准的openssl库和头文件外,还会有tassl_demo的例子目录
cd /root/lib_r/tassl/tassl_demo

a) cert目录:

包含生成测试证书的脚本gen_sm2_cert.sh
生成测试证书目录certs
./ gen_sm2_cert.sh

b) crypto目录:

包含测试国密算法的示例进行编译测试
./mk.sh

c) ssl目录:

包含国密ssl通讯的客户端和服务端进行编译测试
./mk.sh

d)运行成功后
/root/lib_r/tassl/tassl_demo/cert/certs 目录下应有如下证书
在这里插入图片描述

2.安装Nginx服务器
(1) 安装过程
解压文件
yum install -y unzip zip
unzip Nginx_Tassl.zip

赋予权限
chmod 777 -R Nginx_Tassl

进入Nginx_Tassl目录,运行设置和编译安装命令
./configure --with-http_ssl_module --with-stream --with-stream_ssl_module --with-openssl=/root/lib_r/tassl --prefix=/root/nginx

make & make install
安装完成后,赋予权限
chmod 777 -R /root
修改Nginx配置
cd /root/nginx/conf
vi nginx.conf
根据图片修改内容
在这里插入图片描述

ssl_certificate /root/lib_r/tassl/tassl_demo/cert/certs/SS.crt; #/签名证书/
 
ssl_certificate_key /root/lib_r/tassl/tassl_demo/cert/certs/SS.key; #/签名私钥/
 
ssl_enc_certificate /root/lib_r/tassl/tassl_demo/cert/certs/SE.crt; #/加密证书/
 
ssl_enc_certificate_key /root/lib_r/tassl/tassl_demo/cert/certs/SE.key; #/加密私钥/

(2) 启动Nginx
cd /root/nginx/sbin
./nginx
查看nginx状态
ps -ef | grep nginx

如图显示则启动成功
在这里插入图片描述

关闭nginx
./nginx -s stop
重启nginx
./nginx -s reload
(3) 可能出现的问题
2020年6月作者提供的资源,可能由于未更新全部资源,导致编译时出现如下问题并导致编译失败。
error: implicit declaration of function ‘SSL_CTX_use_enc_certificate_file’ [-Werror=implicit-function-declaration]
在这里插入图片描述

ngx_event_openssl.c文件中的函数SSL_CTX_use_enc_certificate_file未在头文件声明。
所以编者下载了2019年12月的Nginx_Tassl资料后成功编译并安装。
这个是可用的版本

四、下载密信浏览器或者360浏览器进行测试

(1) 密信浏览器

下载地址:https://www.mesince.com/zh-cn/browser

如果第一次连接失败,那么密信浏览器会尝试国际算法,导致以后的连接都会使用国际算法,无法成功。此时需要在浏览器设置中,清楚浏览数据,进行清楚所有的数据,那么浏览器在下一次再进行连接时,会首先尝试国密算法。

(2) 360浏览器

下载地址:https://browser.360.cn/se/ver/gmzb.html

360国密浏览器版本目前较多。而且和新版本的Windows 10系统,会偶发性的导致系统重启。 而且360要求自己添加根证书,如果没有添加会导致SSL握手完成后显示证书不正确。 添加跟证书方法:将根证书放在ctl.dat文件中,然后把此文件放在%appdata%/360se6\Application\User Data\Default\ctl目录中, 注意:上面从"User Data\Default\ctl"的目录并不存在,需要手工创建。 经过多次测试,目前可以添加根证书生效的版本360_mini_installer_sm_7.exe,已经附件到另一个仓库中https://github.com/jntass/GM_BROWERS 而且我们的测试环境是Windows 7系统。

(3)访问 https://ip 即可
下图是使用密信浏览器的截图,360浏览器一直让win10系统重启。
在这里插入图片描述
在这里插入图片描述
楼主踩坑踩了几十个,翻阅了大量资料才终于成功,分享给大家,希望我国技术尽快超越美帝。
早日实现共同富裕,世界人民大团结万岁!

猜你喜欢

转载自blog.csdn.net/pz641/article/details/107782269