SSL证书安装配置指南(SM2证书)

一、生成证书请求

*密钥文件不区分操作系统平台,推荐使用CIM客户端工具。

运行CIM客户端,点击工具箱,点击CSR生成,然后填写您的证书注册信息,点击生成,然后下拉至底部,点击保存CSR和私钥。请确保您填写的信息真实性和准确性,否则会导致证书申请失败。

以下是示例信息:

 

*使用CIM工具创建csr文件之后,将生成的server.csr文件发送给天威诚信,等待证书的签发。请同时备份server.key文件并稍后上传到服务器上进行配置。

*在您收到证书签发邮件之前,请不要删除压缩包中的server.key文件,以避免私钥丢失而导致证书无法安装。

注:如SSL证书已签发,不需要再次生成CSR,开始安装证书即可。

二,安装服务器证书

1.获取服务器签名证书文件

将证书签发邮件中的“以下是您的签名证书”代码的文本复制出来(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”)粘贴到记事本等文本编辑器中。

为保障服务器证书在客户端的兼容性,服务器证书需要安装中级CA证书。 在服务器证书代码文本结尾,回车换行不留空行,粘贴证书签发邮件中的“以下是您的中级CA证书”部分里的第一段CA证书和第二段的内容(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”),每串证书代码之间均需要使用回车换行不留空行,修改文件扩展名,保存包含三段证书代码的文本文件为server.pem文件。

2.获取服务器加密证书文件

将证书签发邮件中的“以下是您的加密证书”代码的文本复制出来(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”)粘贴到记事本等文本编辑器中,保存包含一段证书代码的文本文件为serverencryption.pem文件。

  1. 提取加密密钥

运行“iTrusSm2Tools.exe”文件,并在工具中录入对应信息。

签名证书私钥为server.key文件,加密证书为serverencryption.pem文件,加密私钥密文为 证书签发邮件中“以下是您的加密密钥提取值”内容。如图所示:

 

提取后得到的文件保存为serverencryption.key文件。

  1. 安装服务器证书

复制生成的证书文件和密钥文件到Nginx安装目录下的conf目录(如Nginx不支持SM2证书安装建议使用支持SM2算法的硬件设备适配或通过天威诚信获取Nginx编译GMSSL兼容SM2算法参考建议)。

打开Nginx安装目录下conf目录中的nginx.conf文件

找到

# HTTPS server

#

#server {

#    listen       443;

#    server_name  localhost;

#    ssl                  on;

#    ssl_certificate      cert.pem;

#    ssl_certificate_key  cert.key;

#    ssl_session_timeout  5m;

#    ssl_protocols  SSLv2 SSLv3 TLSv1;

#    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

#    ssl_prefer_server_ciphers   on;

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

将其修改为

server {

listen       443 ssl;

server_name  www.itrus.cn;

ssl_certificate      serverRSA.pem;

ssl_certificate_key  serverRSA.key;

#可以配置RSA算法的国际可信证书,若不需要RSA证书可注释上方2行配置。

ssl_certificate      server.pem;

ssl_certificate_key  server.key;

#配置SM2算法证书签名证书密钥对

ssl_certificate      serverencryption.pem;

ssl_certificate_key  serverencryption.key;

#配置SM2算法证书加密证书密钥对

ssl_session_cache    shared:SSL:1m;

ssl_session_timeout  5m;

ssl_protocols GMTLSv1.1 TLSv1.1 TLSv1.2;

ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:ECC-SM4-SM3:SM2-WITH-SMS4-SM3;

ssl_prefer_server_ciphers   on;

location / {

root   html;

index  index.html index.htm;

}

}

保存退出,并重启Nginx。

通过360等支持SM2算法的浏览器以https方式访问您的站点,测试站点证书的安装配置。

三、备份服务器证书

在您成功的安装和配置了服务器证书之后,请务必依据下面的操作流程,备份好您的服务器证书,以防证书丢失给您的系统应用带来不便。

  1. 服务器证书的备份

备份所有.key后缀服务器证书私钥文件,以及.pem后缀的服务器证书文件即可完成服务器证书的备份操作。

  1. 服务器证书的恢复

请参照服务器证书配置部分,将服务器证书密钥文件恢复到您的服务器上,并修改配置文件,恢复服务器证书的应用。

### 如何在 Nginx 中配置安装 SM2 国密证书 #### 准备工作 为了成功完成 Nginx 的 SM2 证书配置,需要准备以下材料: - 已经申请并获取到的 SM2 数字证书文件(通常包括 `.crt` 或 `.pem` 文件)。 - 私钥文件(通常是 `.key` 格式),该私钥用于解密客户端发送的数据。 - 如果使用的是国密标准,则可能还需要额外的支持库或模块来确保兼容性。 这些准备工作已经在相关文档中提及过[^1]。 #### 安装必要的依赖项 由于 SM2 属于中国国家密码算法的一部分,默认情况下 Nginx 并不自带对该算法的支持。因此,需先编译带有 GmSSL 支持的 OpenSSL 版本,并重新构建 Nginx: ```bash # 下载最新的 OpenSSL 和 gmssl 补丁版本 wget https://www.openssl.org/source/openssl-<version>.tar.gz tar -zxvf openssl-<version>.tar.gz cd openssl-<version> # 应用补丁以启用 GMSSL 功能 patch -p1 < /path/to/gmssl.patch # 编译 OpenSSL ./config --prefix=/usr/local/openssl-gm no-shared enable-tls1_3 make && make install ``` 接着下载最新稳定版 Nginx 源码包,并指定刚才自定义编译好的 OpenSSL 路径进行链接操作: ```bash # 获取 Nginx 源代码 wget http://nginx.org/download/nginx-<version>.tar.gz tar zxf nginx-<version>.tar.gz cd nginx-<version> # 配置选项加入新 OpenSSL 地址 ./configure --with-http_ssl_module \ --with-openssl=/path/to/openssl-source-dir \ --with-cc-opt="-I/usr/local/openssl-gm/include" \ --with-ld-opt="-L/usr/local/openssl-gm/lib" # 构建与部署新的二进制程序 make && sudo make install ``` 上述过程完成后即可获得支持国密协议栈的新版 web server 实例。 #### 修改 Nginx 配置文件 编辑默认站点目录下的 `nginx.conf` ,调整如下参数设置以便加载 sm 系列加密方式以及对应的证书链信息: ```nginx server { listen 443 ssl; server_name localhost; # 启用 TLSv1.2 及以上版本, 推荐优先选用 tls1.3 协议 ssl_protocols TLSv1.2 TLSv1.3; # 设置 ciphersuite 列表为只允许国密算法组合 ssl_ciphers SM4-SM3-RSA-PSS:SM4-SM3-DH; # 提供公钥认证所需的 .crt/.cer 文件路径 ssl_certificate /etc/nginx/certs/server.crt; # 对应私有 key 所处位置 ssl_certificate_key /etc/nginx/private/server.key; location / { root html; index index.html index.htm; } } ``` 保存更改之后重启服务使改动生效: ```bash sudo systemctl restart nginx.service ``` 此时访问 HTTPS URL 就能触发基于 SM2 曲线椭圆签名验证流程了。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值