2017-01-18 4 views
0

Мой вопрос прост, мы можем изменить сертификат ssl динамически? Предположим, у меня есть два самоподписанных сертификата, /2/keystore.jks и /3/keystore.jksМожем ли мы изменить сертификат SSL в весеннем контроллере MVC?

Мой вопрос: могу ли я использовать первый сертификат для одного URL-адреса и второго сертификата для другого.

До сих пор я попробовал другой код

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

После очень долгого и долгого времени RND я подтвердил, что это невозможно. Сертификаты SSL связаны с IP-адресом, и это просто невозможно, по крайней мере, пока.

Спасибо.