<分区>
<分区>
我有一个 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/