用户在安装国密SSL证书时,发现与常规RSA证书不同,所涉及算法支持、双证书体系、专用浏览器等多个特殊环节。下面是一份几分钟可完成的环境检查清单,按检查顺序排列。

一、端口与网络检查(30秒)

确保443端口已开放:在服务器操作系统防火墙和安全组(云平台安全组规则)中放行443端口。这是HTTPS服务的标准端口,未开放会导致证书安装后无法启用HTTPS。

确认公网IP与域名解析匹配:通过拨测工具确认域名的A记录解析指向当前服务器的公网IP。

检查ICP备案状态(中国内地服务器):确保域名已完成工信部ICP备案,未备案的域名无法正常提供Web服务。

二、证书文件检查(1分钟)

证书状态确认为“已签发”:登录CA机构控制台,确认目标证书状态为“已签发”,而非“待验证”或“已过期”。

下载完整的证书文件包:国密SSL证书通常包含以下文件,缺一不可:

      签名证书(`xxx_sign.crt`  /  `xxx_sign_bundle.pem`)

      签名私钥(`xxx_sign.key`)

      加密证书(`xxx_encrypt.crt`  /  `xxx_encrypt_bundle.pem`)

      加密私钥(`xxx_encrypt.key`)

验证证书文件完整性:使用  `gmssl  x509  -in  证书文件.pem  -text`  查看证书详情,确认颁发者为国密CA、签名算法为  `sm3WithSM2`、密钥长度为256位。

确认域名匹配:证书绑定的域名必须与实际访问域名完全一致。通配符证书(如`*.example.com`)仅对一级子域名生效,不覆盖多级子域名。

三、服务器环境检查(2分钟)

确认操作系统与Web服务器支持国密:国密SSL证书目前主要支持Linux环境下的Nginx和Apache,Windows  Server需使用国密专用版Nginx。

确认Nginx/Apache为国密版本:官方版Nginx和Apache默认不支持国密算法,必须使用编译了国密模块的版本(如含gmssl_openssl的Nginx),否则配置国密证书后会报错。

检查编译依赖是否齐全:若需自行编译国密版Web服务器,确保已安装gcc、gcc-c++、pcre-devel、zlib-devel等编译工具。

确认服务器已安装远程管理工具:准备WinSCP(文件上传)和PuTTY/Xshell(远程登录)等工具,确保证书文件能够顺利上传至服务器。

四、客户端/浏览器检查(1分钟)

准备国密浏览器:普通Chrome、Firefox默认不兼容国密SSL证书。需使用360国密浏览器、红莲花国密浏览器、密信浏览器或零信浏览器进行访问测试。

确认根证书已预埋或手动导入:根证书须预置于国密浏览器的信任库中;若访问时提示“证书不受信任”,需手动将CA根证书导入浏览器或系统信任库。

验证浏览器国密支持:使用360国密版或红莲花浏览器访问目标域名,检查地址栏是否显示绿色锁图标,点击锁图标查看证书详情中是否包含SM2算法标识和国密CA颁发机构信息。

五、配置文件与密码套件检查(30秒)

确认国密密码套件已配置:在Nginx/Apache配置中指定国密密码套件,例如:

        ssl_ciphers  ECC-SM2-SM4-CBC-SM3:ECDHE-SM2-SM4-GCM-SM3;

        密码套件需包含SM2/SM3/SM4算法标识。

检查双证书配置(如适用)  :若需同时兼容国际浏览器,需配置SM2/RSA双证书方案。在Nginx配置中同时指定签名证书和加密证书两对密钥。

六、快速验证命令(30秒)

环境检查完成后,可运行以下命令快速验证国密HTTPS连接是否就绪:

使用gmssl测试国密握手:

    bash

    gmssl  s_client  -connect  域名:443  -cipher  ECC-SM2-SM4-CBC-SM3

    成功连接会显示  `Protocol:  GMSSL`  和国密加密套件信息。

使用curl测试:

    bash

    curl  -k  --tlsv1.2  --ciphers  ECC-SM2-SM4-CBC-SM3  https://域名

常见坑点提醒

坑点      后果      解决办法  

使用官方版Nginx/Apache      配置国密证书后报错      必须使用编译了国密模块的版本  

未开启443端口(含安全组)      HTTPS无法访问      操作系统防火墙  +  云安全组双向放行  

用Chrome/Firefox测试国密      提示“证书不受信任”      改用360国密版、红莲花等国密浏览器  

只配置了签名证书,缺少加密证书    国密握手失败      双证书(签名+加密)必须同时配置  

域名与证书绑定的域名不匹配      浏览器安全警告      确认证书域名覆盖当前访问域名  

根证书未预埋/未导入      浏览器提示不安全      手动导入国密根证书到系统信任库  

上面清单逐项确认后,即可进入正式的SSL证书安装步骤。建议在正式部署前先在测试环境中完整走一遍流程。