我的问题很简单,我们可以动态更改ssl证书吗? 假设我有两个自签名证书,/ 2 / keystore.jks和/3/keystore.jks
我的问题是我可以将第一个证书用于一个网址,将第二个证书用于其他网址。
到目前为止,我尝试了不同的代码
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CertificateUtil {
public static X509Certificate readCertificateFile(String keystorefilePath, String clientKeystorePassword, String alias)
throws Exception {
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream(keystorefilePath),
clientKeystorePassword.toCharArray());
KeyStore.PrivateKeyEntry keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(alias,
new KeyStore.PasswordProtection(clientKeystorePassword.toCharArray()));
X509Certificate cert = (X509Certificate) keyEntry.getCertificate();
return cert;
}
public static void setCertificateInRequest(HttpServletRequest request, HttpServletResponse response) {
try {
X509Certificate x509Certificate = readCertificateFile(required args...);
request.setAttribute("javax.servlet.request.X509Certificate", javax.security.cert.X509Certificate.getInstance(x509Certificate.getEncoded()));
request.setAttribute("java.servlet.request.X509Certificate", x509Certificate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我尝试了不同的解决方案到目前为止没有任何工作,如果你能指出我的方向非常好。
PS我使用此命令生成证书文件
keytool -genkey -keyalg RSA -alias aliasweb -keystore keystore.jks -storepass aliasweb -validity 360 -keysize 2048
提前致谢。
答案 0 :(得分:0)
经过漫长而耗时的RND后,我确认这是不可能的。 SSL证书与IP地址相关联,这至少是不可能的。
感谢。