本文介绍业务部署在Linux系统时,如何通过GVSM实现SSL卸载。
步骤一:准备工作
准备以下软件资源。
资源类型
说明
获取方式
密码机实例管理工具
用于配置密码机实例。
登录加密服务管理控制台,下载软件包。
在软件包的
\阿里云加密服务-GVSM软件包XXXX\管理工具及用户手册
目录下,获取密码机实例管理工具及使用手册。
TASSL引擎
支持调用GVSM的TASSL引擎文件包,支持国密算法和国际算法。
请联系阿里云技术支持。
Nginx代理
配合使用TASSL引擎的Nginx服务包。
请联系阿里云技术支持。
部署如下云产品资源。
资源名称
规格
说明
ECS1
64位Windows 10系统
对GVSM进行管理配置,和密码机实例在同个VPC。如何购买,请参见自定义购买实例。
访问GVSM的管理端口为8020。
ECS2
64位Linux系统
用于部署用户的业务系统、TASSL、Nginx,和密码机实例在同个VPC。
说明ECS2访问GVSM的服务端口为8019。
您需要设置ECS2的SSL端口服务。
GVSM
通用服务器密码机(GVSM)
用于完成卸载SSL证书相关的密码运算。
步骤二:在ECS1上配置密码机实例管理工具
密码机客户端管理工具只支持在Windows系统运行。
登录ECS1实例。具体操作,请参见ECS连接方式概述。
在ECS1上安装密码机实例管理工具,然后通过本地终端远程登录ECS实例,在ECS实例上操作密码机实例管理工具。
说明您也可以在本地终端安装密码机客户端管理工具,然后通过VPN或物理专线使本地终端连接到密码机实例所属的VPC网络。
初始化密码机实例。
如果您已初始化过密码机,请跳过本步骤。
方式一:在加密服务控制台一键初始化
重要如果您的业务没有使用UKEY的需求,可以使用一键初始化,否则请使用密码机实例管理工具初始化。
访问加密服务控制台的虚拟密码机实例页面,在顶部菜单栏,选择目标地域。
定位到目标密码机,在操作列单击
。在初始化实例对话框,单击确定。
初始化预计需要1~5分钟时间,请耐心等待。初始化完成后,状态会显示已初始化。
方式二:使用密码机实例管理工具,初始化密码机实例。
具体操作,请参见软件包中的用户使用手册的《原始初始化》章节。
步骤三:在ECS2部署TASSL
登录ECS2实例。具体操作,请参见ECS连接方式概述。
将获取到的TASSL引擎文件包
nginx_tassl_tasshsmXX.XX.XX
上传至ECS2并解压,例如解压到/home/tass
目录。说明文件包中通常还会包含Nginx服务包,Nginx服务包也请解压到/home/tass目录。
如果tassl.tgz未解压到
/home/tass
目录,则需要配置两个环境变量,分别用于查找引擎库和引擎库配置文件。例如:export OPENSSL_ENGINES=/home/other/tassl/lib/engines-1.1/ export TASSL_ENGINE_CFG=/home/other/tassl/cfg/tasshsm_engine.ini
配置TASSL引擎要访问的GVSM信息。
将
/home/tass/tassl/cfg/tasshsm_engine.ini
文件中的HSM_IP和HSM_PORT修改为GVSM的IP地址和主机服务端口号。#GVSM的IP地址。 HSM_IP = 172.XX.XX.183 #固定为8019。 HSM_PORT = 8019
GVSM的IP地址请在控制台的IP地址列查看。
步骤四:申请和签发SSL证书
您可以根据需要生成RSA算法、SM2算法的服务器的证书请求文件(也称CSR或P10文件)并签发证书。
RSA算法服务端证书(单证)申请和签发
生成CSR证书请求文件。
登录密码机实例管理工具。
端口默认为8020,无需修改。
产生新密钥。
单击密钥管理页签,然后单击非对称密钥管理。
在非对称密钥管理对话框,单击产生新密钥。
在产生非对称密钥对话框,配置算法标识为RSA、密钥模长为2048、幂指数为65537,自定义密钥索引,然后单击产生。
GVSM将产生新的非对称密钥并显示公钥明文和私钥密文。
生成证书请求文件。
方式一:通过密码机管理工具生成
在非对称密钥管理对话框,单击生成RSA请求。
在生成RSA对话框,输入合法的主题,选择是否使用内部索引,并输入密钥索引,单击确定。
将P10请求复制保存为证书请求文件。文件名称以S_RSA_HSM.csr为例。
方式二:通过TASSL配套脚本生成
进入ECS2的
/home/tass/tassl/cert/rsa
目录,生成证书请求文件S_RSA_HSM.csr。[tass@localhost rsa]#./gen_rsa_csr_with_hsm -r S_RSA_HSM.csr -k ./S_RSA_HSM.key 请输入DN:/C=CN/ST=BJ/L=HaiDian/O=JNTA/OU=BSRC of TASS/CN=rsa_commoname/ 请输入密钥模长[1024 - 2048]:2048 请选择摘要算法: 1)SHA1 2)SHA224 3)SHA256 4)SHA384 5)SHA512 请输入:3 请输入加密机存储私钥的索引号:15
签发证书。
重要在测试阶段建议采用自签发证书,生产阶段建议采用从CA中心签发或者通过阿里云数字证书管理服务签发的证书。
本文以自签发证书为例,阿里云数字证书管理服务签发证书的具体操作,请参见提交证书申请。
进入ECS2的
/home/tass/tassl/cert/rsa
目录。签发
S_RSA_HSM.crt
。./sign_cert.sh S_RSA_HSM.csr S_RSA_HSM.crt
国密SM2算法的服务端证书(双证)申请和签发
生成CSR证书请求文件。
登录密码机实例管理工具。
端口默认为8020,无需修改。
产生签名密钥和加密密钥。
单击密钥管理页签,然后单击非对称密钥管理。
在非对称密钥管理对话框,单击产生新密钥。
在产生非对称密钥对话框,配置算法标识为SM2、输入密钥索引号,然后单击产生。
签名密钥索引号以15为例,加密密钥索引号以16为例。
GVSM将产生新的非对称密钥并输出显示公钥明文和私钥密文。
生成签名证书请求文件,以及加密证书请求文件。
方式一:通过密码机实例管理工具生成
在非对称密钥管理对话框,单击生成SM2/ECC请求。
在生成ECC/SM2请求对话框中,曲线标识选择SM2,算法标识选择SM3WithSM2,输入主题、密钥索引,单击确定。生成签名证书请求文件时,密钥索引填15,生成加密证书请求文件密钥索引填16。
将P10请求复制保存为证书文件。签名证书请求文件名称以
SS_SM2_HSM.csr
为例,加密证书请求文件名称以SE_SM2_HSM.csr
为例。
方式二:通过TASSL配套脚本生成
进入ECS2的
/home/tass/tassl/cert/sm2
目录,生成签名证书请求文件和加密证书请求文件。签名证书请求文件名称以SS_SM2_HSM.csr
为例,加密证书请求文件名称以SE_SM2_HSM.csr
为例。#产生证书请求文件SS_SM2_HSM.csr [tass@localhost rsa]# ./gen_sm2_csr_with_hsm -r SS_SM2_HSM.csr 请输入DN:/C=CN/ST=BJ/L=HaiDian/O=Beijing JNTA Technology LTD./OU=BSRC of TASS/CN=sm2_commoname/ 请输入加密机存储私钥的索引号:15 #产生加密证书请求文件SE_SM2_HSM.csr [tass@localhost rsa]# ./gen_sm2_csr_with_hsm -r SE_SM2_HSM.csr 请输入DN:/C=CN/ST=BJ/L=HaiDian/O=Beijing JNTA Technology LTD./OU=BSRC of TASS/CN=sm2_commoname/ 请输入加密机存储私钥的索引号:16
签发证书。
重要在测试阶段建议采用自签发证书,生产阶段建议采用从CA中心签发或者通过阿里云数字证书管理服务签发的证书。
本文以自签发证书为例,阿里云数字证书管理服务签发证书的具体操作,请参见提交证书申请。
进入ECS2的
/home/tass/tassl/cert/sm2
目录。签发签名证书文件
SS_SM2_HSM.crt
和加密证书文件SE_SM2_HSM.crt
。#签发签名证书文件SS_SM2_HSM.cr ./sign_cert_s.sh SS_SM2_HSM.csr SS_SM2_HSM.crt #签发加密证书文件SE_SM2_HSM.crt ./sign_cert_e.sh SE_SM2_HSM.csr SE_SM2_HSM.crt
步骤五:部署Nginx服务
配置不同加密算法服务端证书的Nginx服务。
您可以参考下表代码示例编辑
/home/tass/nginx/conf/nginx.conf
配置文件的证书部分。RSA
user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # HTTPS server server { listen 8020 ssl; server_name localhost; #use tasshsm engine by key index ssl_certificate /home/tass/tassl/cert/rsa/S_RSA_HSM.crt; #配置RSA证书文件。 ssl_certificate_key engine:tasshsm_rsa:15; #配置存储RSA私钥的索引号。 location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
SM2
user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # HTTPS server server { listen 8020 ssl; server_name localhost; #use tasshsm engine by key index ssl_certificate /home/tass/tassl/cert/sm2/SS_SM2_HSM.crt; #配置签名证书文件。 ssl_certificate_key engine:tasshsm_sm2:15; #配置存储签名私钥的索引号。 ssl_enc_certificate /home/tass/tassl/cert/sm2/SE_SM2_HSM.crt; #配置加密证书文件。 ssl_enc_certificate_key engine:tasshsm_sm2:16; #配置存储加密私钥的索引号。 location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
执行以下命令启动Nginx代理。
cd /home/tass/nginx/sbin ./nginx
步骤六:测试验证
部署完成后,您可以通过以下方式验证RSA算法和国密SM2算法服务端证书是否部署成功。
如果您使用的是RSA算法服务端证书(单证),可以通过浏览器直接访问您申请的域名URL进行验证。
如果您使用的是国密SM2算法的服务端证书(双证),需要按照以下操作进行验证:
在客户端安装支持国密算法的浏览器(例如360安全浏览器),将签发给服务端的CA证书导入到浏览器,并设置为信任。
拷贝ECS2中证书文件/home/tass/tassl/cert/sm2/ca.crt的内容到C:\Users\Administrator\AppData\Roaming\360se6\User Data\Default\gmssl\ctl.dat文件。
重启浏览器。
在C:\Windows\System32\drivers\etc路径修改hosts文件,将服务器地址指向您的测试域名。
通过浏览器访问您的测试域名。