java - 带有运行时证书的 SSL Java

标签 java ssl runtime

<分区>

我有一个 java 项目,其中每个安装都有一个服务器和一个客户端。连接应该是安全的。服务器部分是跨平台的(包括Android),因此不能使用Keytool或openssl来生成 key 。

因为会有很多服务器,我不能只生成一个证书并将其包含在内,因为这样每个服务器都会有相同的证书(当然,是自签名的)。

理想情况下,我希望在服务器第一次启动时使用纯 java 在运行时生成证书,因为我不能使用任何外部工具。

请提供实际实现的示例。也欢迎使用替代方法或建议。

最佳答案

这就是你想要的东西。

//Build a blank keystore with a password
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
char[] password = "some password".toCharArray();
ks.load(null, password);

//Sample key storage
javax.crypto.SecretKey mySecretKey;
KeyStore.SecretKeyEntry skEntry =
    new KeyStore.SecretKeyEntry(mySecretKey);
ks.setEntry("secretKeyAlias", skEntry, 
    new KeyStore.PasswordProtection(password));

//Update the keystore file
fos = new java.io.FileOutputStream("keystorefilename");
ks.store(fos, password);

但是,您需要使用 BouncyCaSTLe 创建证书并将其导入。有 a tutorial on that available .

关于java - 带有运行时证书的 SSL Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15121471/

上一篇:ssl - 购买 DNSimple SSL 证书以使其与 Heroku ssl 插件一起使用时,我应该在主机名中输入什么?

下一篇:银光。安全问题

相关文章:

java - java中的getText().replaceAll()错误

java - grails 渲染插件不兼容的返回类型问题

java - 商业网站架构问题

java - 为 Tomcat 7 配置 SSL 导致 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误

wpf - 提取正在运行的WPF应用程序的WPF内容模板

c++ - Mex 函数比相同的 C++ 代码更快

java - 在 session 中存储数据,如何以及何时检测数据是否过时

ssl - SSL握手期间浏览器如何生成对称 key

tomcat - 如果只显示数据的公共(public)网站需要设置 SSL

log4j+commons-日志记录迁移到Logback