2017-01-18 5 views
0

私の質問は簡単ですが、私たちはSSL証明書を動的に変更できますか? 私は2つの自己署名証明書、/2/keystore.jksと/3/keystore.jksを持っているとします。春のMVCコントローラでSSL証明書を動的に変更できますか?

私の質問は、1つのURLの最初の証明書と他のものの2番目の証明書を使用できますか?

は、これまでのところ、私はあなただけの非常に良いだろう正しい方向に私を指すことができれば何も、これまで働いていない別の解決策を試してみました

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(); 
     } 
    } 
} 

異なるコードを試してみました。私は、証明書ファイルを生成するために、事前に

keytool -genkey -keyalg RSA -alias aliasweb -keystore keystore.jks -storepass aliasweb -validity 360 -keysize 2048 

おかげで、このコマンドを使用

PS。

答えて

0

私は非常に長く時間がかかるRNDの後、私はそれが不可能であることを確認しました。 SSL証明書はIPアドレスに関連付けられていますが、これはまだ少なくとも不可能ではありません。

ありがとうございました。