在东方通TongWeb中部署国密SSL证书,核心是使用JKS格式的密钥库,并通过管理控制台的 “HTTP通道管理” 进行配置。
一、准备工作
在开始部署前,请确保以下条件已满足:
1. 获取国密证书:从国密CA(如CFCA、华测CA等)获取证书文件包。国密证书通常采用双证书模式,包含加密证书和签名证书。
2. 准备JKS密钥库:TongWeb主要使用JKS格式的密钥库。你需要将获取的国密证书(SM2算法)和私钥导入到一个JKS文件中。
重要提示:标准的`keytool`可能不支持SM2算法,你可能需要使用支持国密的Java Cryptography Extension (JCE) 安全提供者(如BouncyCastle)。
3. 开放端口:确保服务器上的443端口已开放,并在安全组策略中放行。
二、操作步骤
第一步:生成证书签名请求 (CSR)
如果你还没有证书,需要先为TongWeb生成一个CSR(即P10请求)提交给CA。
方法一:使用支持国密的OpenSSL (GmSSL)
这是推荐的方法,能更好地兼容国密算法。
bash
1. 生成SM2私钥
gmssl ecparam -genkey -name sm2p256v1 -out server.key
2. 生成P10请求
gmssl req -new -key server.key -out request.p10 -subj "/C=CN/O=YourCompany/CN=your.domain.com" -sm3
方法二:使用Java KeyTool
如果你的Java环境已配置好国密Provider,也可以使用`keytool`。
bash
1. 生成密钥对并创建JKS密钥库
keytool -genkeypair -alias server -keyalg SM2 -keystore keystore.jks -storepass changeit -keypass changeit -dname "CN=your.domain.com, O=YourCompany, C=CN"
2. 导出P10请求
keytool -certreq -alias server -keystore keystore.jks -file request.p10 -storepass changeit
第二步:获取CA签发的证书
将生成的`request.p10`文件提交给你的国密CA机构。CA验证通过后,会给你签发证书文件。你通常会收到一个包含多种格式的压缩包,部署到TongWeb时需要用到其中的 Tomcat文件夹内的证书。
第三步:在TongWeb中部署证书
1. 上传JKS文件:将包含私钥和CA签发证书的JKS文件,上传到TongWeb安装目录的`/conf`文件夹下。
2. 登录管理控制台:登录TongWeb的管理控制台。
3. 导航到HTTP通道管理:在菜单中依次找到并点击 “WEB容器配置” -> “HTTP通道管理”。
4. 编辑HTTP通道:在通道列表中找到并点击`tong-http-listener`进行编辑。
5. 配置通道类型与端口:
将 “HTTP通道类型” 修改为 `HTTPS`。
将 “监听端口” 修改为 `443`。
6. 配置SSL属性:在页面下方的 “SSL属性” 区域进行证书配置。
证书类型:选择 `JKS`。
证书路径:填写JKS文件相对于TongWeb安装目录的路径,例如`conf/your_keystore.jks`。
证书密码:输入JKS密钥库的密码。
7. 保存并重启:保存所有配置,并重启TongWeb服务使配置生效。
三、验证与测试
部署完成后,可以通过以下方式验证:
浏览器访问:在浏览器中用 `https://your.domain.com` 访问你的应用,检查证书是否有效。
命令行验证:使用`openssl`或`curl`命令检查。
bash
检查TLS连接和证书信息
openssl s_client -connect your.domain.com:443 -tlcp # 若支持TLCP协议
或
curl -v https://your.domain.com
四、常见问题与排障
控制台提示“不安全,请更新国密证书”:这通常是TongWeb自带的演示证书过期所致。解决方法是升级到较新版本,或用新版本`conf`目录下的`client.p12`、`EncryptionKey.p12`、`server.keystore`、`server.pem`、`SignKey.p12`五个文件覆盖旧文件,并删除`conf\security\cert.managed`文件后重启。
浏览器提示“证书不受信任”:因为国密根证书通常不在浏览器默认信任库中,需要手动将CA的根证书导入到浏览器。
国密算法支持问题:确保你的TongWeb版本支持国密算法套件(SM2/SM3/SM4)。如遇问题,可能需要检查并配置JDK的安全提供者。
双证书配置:国密标准通常要求双证书(加密和签名)。请根据你的CA和TongWeb版本的具体要求进行配置。
双向认证(mTLS):如果需要客户端证书认证,可在SSL属性中开启“客户端认证”并配置信任库。
如果问题依旧,建议查阅TongWeb的官方文档或联系东方通的技术支持。