本文介绍业务部署在Linux系统时,如何通过EVSM实现SSL卸载。
步骤一:准备工作
准备以下软件资源。
资源类型
说明
获取方式
密码机实例管理工具
用于配置密码机实例。
登录加密服务管理控制台,下载软件包。
在软件包的
\阿里云加密服务-EVSM软件包XXXX\管理工具及用户手册
目录下,获取密码机实例管理工具及使用手册。
TASSL引擎
支持调用EVSM的TASSL引擎文件包,支持国密算法和国际算法。
请联系阿里云技术支持。
Nginx代理
配合使用TASSL引擎的Nginx服务包。
请联系阿里云技术支持。
部署如下云产品资源。
资源名称
规格
说明
ECS1
64位Windows 10系统
对EVSM进行管理配置,和密码机实例在同个VPC。如何购买,请参见自定义购买实例。
ECS1访问EVSM的管理端口需要设置为8013。
ECS2
64位Linux系统
用于部署用户的业务系统、TASSL、Nginx,和密码机实例在同个VPC。
说明ECS2访问EVSM的服务端口为8018。
您需要设置ECS2的SSL端口服务。
EVSM
金融数据密码机(EVSM)
用于完成卸载SSL证书相关的密码运算。
步骤二:在ECS1上配置密码机实例管理工具
密码机客户端管理工具只支持在Windows系统运行。
登录ECS1实例。具体操作,请参见ECS连接方式概述。
在ECS1上安装密码机实例管理工具,然后通过本地终端远程登录ECS实例,在ECS实例上操作密码机实例管理工具。
说明您也可以在本地终端安装密码机客户端管理工具,然后通过VPN或物理专线使本地终端连接到密码机实例所属的VPC网络。
使用密码机实例管理工具,初始化密码机实例。具体操作,请参见软件包中的用户使用手册的《原始初始化》章节。
如果您已初始化过密码机,请跳过本步骤。
步骤三:在ECS2部署TASSL
登录ECS2实例。具体操作,请参见ECS连接方式概述。
将获取到的TASSL引擎文件包
nginx_tassl_tasshsmXX.XX.XX
上传至ECS2并解压,例如解压到/home/tass
目录。说明文件包中通常还会包含Nginx服务包,Nginx服务包也请解压到/home/tass目录。
如果未解压到/home/tass目录,则需要配置两个环境变量,分别用于查找引擎库和引擎库配置文件。例如:
export OPENSSL_ENGINES=/home/other/tassl/lib/engines-1.1/ export TASSL_ENGINE_CFG=/home/other/tassl/cfg/tasshsm_engine.ini
配置TASSL引擎要访问的EVSM信息。
将
/home/tass/tassl/cfg/tasshsm_engine.ini
文件中的HSM_IP和HSM_PORT修改为EVSM的IP地址和主机服务端口号。#EVSM的IP地址。 HSM_IP = 172.XX.XX.183 #固定为8018。 HSM_PORT = 8018
EVSM的IP地址请在控制台的IP地址列查看。
步骤四:申请和签发SSL证书
您可以根据需要生成RSA算法、SM2算法、ECC算法服务器的证书请求文件(也称CSR或P10文件)并签发证书。
RSA算法服务端证书(单证)申请和签发
生成CSR证书请求文件。
登录密码机实例管理工具。
端口默认为8013,无需修改。
产生新密钥。
单击密钥管理页签,然后单击非对称密钥管理。
在非对称密钥管理对话框,单击产生新密钥。
在产生非对称密钥对话框,配置算法标识为RSA、密钥模长为2048、幂指数为65537,自定义密钥索引,然后单击产生。
EVSM将产生新的非对称密钥并显示公钥明文和私钥密文。
生成证书请求文件。
方式一:通过密码机管理工具生成
在非对称密钥管理对话框,单击生成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 请输入DN:/C=CN/ST=BJ/L=HaiDian/O=Beijing JNTA Technology LTD./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证书请求文件。
登录密码机实例管理工具。
端口默认为8013,无需修改。
产生签名密钥和加密密钥。
单击密钥管理页签,然后单击非对称密钥管理。
在非对称密钥管理对话框,单击产生新密钥。
在产生非对称密钥对话框,配置算法标识为SM2、输入密钥索引号,然后单击产生。
签名密钥索引号以15为例,加密密钥索引号以16为例。
EVSM将产生新的非对称密钥并输出显示公钥明文和私钥密文。
生成签名证书请求文件,以及加密证书请求文件。
方式一:通过密码机实例管理工具生成
在非对称密钥管理对话框,单击生成SM2/ECC请求。
在生成SM2/ECC请求对话框中,选择算法标识、主题标识,输入主题、密钥索引,单击确定。生成签名证书请求文件时,密钥索引填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
ECC算法的服务端证书申请和签发
生成CSR证书请求文件。
登录密码机实例管理工具。
端口默认为8013,无需修改。
产生签名密钥和加密密钥。
单击密钥管理页签,然后单击非对称密钥管理。
在非对称密钥管理对话框,单击产生新密钥。
在产生非对称密钥对话框,配置算法标识为NISTP256(SECP256R1)、密钥索引号为17,然后单击产生。
EVSM将产生新的非对称密钥并输出显示公钥明文和私钥密文。
生成证书请求文件。
方式一:通过密码机实例管理工具生成
在非对称密钥管理对话框,选中产生的ECC曲线密钥,然后单击生成SM2/ECC请求。
在生成SM2/ECC请求对话框中,选择算法标识、主题标识,输入主题、密钥索引,单击确定。将P10请求复制保存为证书请求文件。例如S_ECC_HSM.csr。
方式二:通过TASSL配套脚本生成
进入ECS2的/home/tass/tassl/cert/ecc目录,生成证书请求文件S_ECC_HSM.csr。
[tass@localhost rsa]# ./gen_ecc_csr_with_hsm -r S_ECC_HSM.csr 请输入DN:/C=CNST=BJ/L=HaiDian/O=Beijing JNTA Technology LTD./OU=BSRC of TASS/CN=ecc_commoname/ 请选择摘要算法:1)SHA1 2)SHA224 3)SHA256 4)SHA384 5)SHA512 请输入:3 请输入加密卡存储私钥的索引号(0代表不保存,并且输出加密私钥):17
签发证书。
重要在测试阶段建议采用自签发证书,生产阶段建议采用从CA中心签发或者通过阿里云数字证书管理服务签发的证书。
本文以自签发证书为例,阿里云数字证书管理服务签发证书的具体操作,请参见提交证书申请。
进入ECS2的/home/tass/tassl/cert/ecc目录。
签发证书文件
S_ECC_HSM.crt
。./sign_cert.sh S_ECC_HSM.csr S_ECC_HSM.crt
步骤五:部署Nginx服务
配置不同加密算法服务端证书的Nginx服务。
您可以参考下表代码示例编辑
/home/tass/nginx/conf/nginx.conf
配置文件的证书部分。RSA
worker_processes auto; … … # 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私钥的索引号。 ssl_verify_client off; #for one way https #表示不验证客户端。 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } …
SM2
worker_processes auto; … … # HTTPS server server { listen 8021 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; #配置存储加密私钥的索引号。 ssl_verify_client off; # for one way https #表示不验证客户端。 … location / { root html; index index.html index.htm; } } …
ECC
worker_processes auto; … … # HTTPS server server { listen 8022 ssl; server_name localhost; #use tasshsm engine by key index ssl_certificate /home/tass/tassl/cert/ecc/S_ECC_HSM.crt; #配置RSA证书文件。 ssl_certificate_key engine:tasshsm_ecc:17; #配置存储RSA私钥的索引号。 ssl_verify_client off; #for one way https #表示不验证客户端。 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } …
执行以下命令启动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文件,将服务器地址指向您的测试域名。
通过浏览器访问您的测试域名。