国密SSL证书安装配置指南

国密SSL是指使用中国国家密码管理局发布的密码算法(如SM2、SM3、SM4)的SSL/TLS证书,用于保障网站的安全通信。本文将介绍如何在Nginx服务器上安装和配置国密SSL证书。

一、什么是国密SSL

国密SSL证书采用了国家密码管理局批准的国产密码算法:

  • SM2:椭圆曲线公钥密码算法,用于数字签名和密钥交换
  • SM3:密码杂凑算法,用于数据完整性校验
  • SM4:分组密码算法,用于数据加密

国密SSL证书在国内合规性要求较高的场景(如政务网站、金融机构等)中广泛应用。

二、国密SSL的优势

  1. 国产化合规:符合国家密码管理局的相关规定
  2. 安全性高:SM2算法在同等密钥长度下,安全性高于RSA算法
  3. 性能优异:加密解密速度快,资源消耗低
  4. 自主可控:避免依赖国外密码算法带来的安全风险

三、安装前准备

  1. 获取国密SSL证书:从权威的CA机构(如CFCA、沃通等)申请国密SSL证书
  2. 检查Nginx版本:确保Nginx支持国密算法(建议使用1.15.0以上版本)
  3. 备份现有配置:在修改配置前,备份当前的Nginx配置文件

四、安装国密SSL证书

1. 上传证书文件

将获取到的国密SSL证书文件上传到服务器指定目录,通常包括:

  • 国密服务器证书文件(如:server.crt)
  • 国密服务器私钥文件(如:server.key)
  • 国密CA证书文件(如:ca.crt) 假设我们将证书文件存放在 /home/ssl/gm/ 目录下。

2. 配置Nginx支持国密SSL

修改Nginx配置文件(通常位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# HTTP服务器配置(重定向到HTTPS)
server {
listen 80;
server_name www.example.com example.com;
return 301 https://$server_name$request_uri;
}

# 国密SSL服务器配置
server {
# 监听国密SSL端口443,并指定使用国密算法
listen 443 ssl;
server_name www.example.com example.com;

# 配置国密SSL证书
ssl_certificate /home/ssl/gm/server.crt; # 国密服务器证书
ssl_certificate_key /home/ssl/gm/server.key; # 国密服务器私钥
ssl_trusted_certificate /home/ssl/gm/ca.crt; # 国密CA证书

# 配置国密密码套件
ssl_ciphers SM2-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;

# 配置会话缓存
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

# 配置OCSP Stapling(可选)
ssl_stapling on;
ssl_stapling_verify on;

# 网站根目录配置
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

# 错误页面配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

3. 测试配置并重启Nginx

1
2
3
4
5
6
# 测试Nginx配置是否正确
nginx -t

# 重启Nginx服务
systemctl restart nginx
# 或使用 service nginx restart

五、验证国密SSL安装

  1. 使用浏览器访问:打开浏览器访问你的网站,检查是否显示为安全连接
  2. 使用国密SSL检测工具:可以使用专门的国密SSL检测工具验证证书是否正确配置
  3. 查看证书详情:在浏览器中查看证书详情,确认使用的是SM2算法

六、注意事项

  1. 浏览器兼容性:部分浏览器可能需要安装国密SSL支持插件才能正常访问
  2. 证书更新:国密SSL证书有有效期,需要在到期前及时更新
  3. 安全配置:定期检查Nginx配置,确保使用最新的安全策略
  4. 日志监控:配置Nginx日志,监控SSL连接情况

七、常见问题排查

  1. Nginx启动失败:检查配置文件语法错误,使用 nginx -t 命令验证
  2. 证书不被信任:确保安装了完整的证书链,包括CA证书
  3. 连接超时:检查防火墙设置,确保443端口已开放
  4. 算法不支持:确认Nginx版本支持国密算法,必要时升级Nginx

通过以上步骤,你可以成功在Nginx服务器上安装和配置国密SSL证书,保障网站的安全通信和国产化合规要求。

--------------本文结束 感谢您的阅读--------------