Skip to content

SSL ​

使用 SSL(获取 SSL 证书、生成 JKS、在 t-io 中使用 SSL) 一些主流的 SSL 证书提供平台,如腾讯云和阿里云,已经提供了现成的 JKS 文件。因此,本文中描述的生成 JKS 证书的步骤可能并不适用,可以直接使用平台方提供的文件。

1. 申请 SSL 证书 ​

SSL 证书可以通过阿里云等平台申请。当然,还有许多其他方式申请 SSL 证书,具体申请过程不在本文范围内。

2. 下载 SSL 证书 ​

如果使用阿里云申请的 SSL 证书,可以下载 Tomcat 版本的证书包,其中包含 xxx.pfx 文件和密码文件。

3. 生成 JKS 证书 ​

如果需要将 .pfx 文件转换为 JKS 文件,可以使用以下命令:

bash
keytool -importkeystore -srckeystore .\xxx.pfx -destkeystore .\xxx.jks -srcstoretype PKCS12 -deststoretype JKS

4. 在 t-io 中配置 SSL ​

仅需一行代码即可启用 SSL:

java
serverTioConfig.useSsl("/cert/xxx.jks", "/cert/xxx.jks", "******");

useSsl() 方法在 ServerTioConfig.java 中定义,而不是在 TioConfig 中。

5. 完成配置 ​

到此为止,SSL 配置已经完成,整个过程简单高效。

额外说明:t-io 源代码解读 ​

如果对 t-io 的内部实现感兴趣,可以查看 useSsl 方法的源代码:

java
/**
 * 配置 SSL
 *
 * @param keyStoreFile 如果是以 "classpath:" 开头,则从 classpath 中查找,否则视为普通的文件路径
 * @param trustStoreFile 如果是以 "classpath:" 开头,则从 classpath 中查找,否则视为普通的文件路径
 * @param keyStorePwd 密码
 * @throws Exception
 */
public void useSsl(String keyStoreFile, String trustStoreFile, String keyStorePwd) throws Exception {
    if (StrUtil.isNotBlank(keyStoreFile) && StrUtil.isNotBlank(trustStoreFile)) {
        SslConfig sslConfig = SslConfig.forServer(keyStoreFile, trustStoreFile, keyStorePwd);
        this.setSslConfig(sslConfig);
    }
}

通过 useSsl 方法,可以指定密钥库文件和信任库文件,并设置相应的密码,完成 SSL 配置。

参考文献 ​

tiocloud 文档资料

MIT Licensed