Javax.net.ssl.SSLHandshakeException: (Zertifikat_unbekannt) Schwerwiegende Warnung erhalten: Zertifikat_unbekanntJava

Java-Forum
Guest
 Javax.net.ssl.SSLHandshakeException: (Zertifikat_unbekannt) Schwerwiegende Warnung erhalten: Zertifikat_unbekannt

Post by Guest »

Meine App verwendet ein React-Frontend, um Abrufe an einen benutzerdefinierten Java-Backend-Server (an meine IP-Adresse: 443) (Netbeans) auf meinem lokalen MacOS zu senden. Das Ganze funktioniert hervorragend mit HTTP-Anfragen auf meinem lokalen Gerät (localhost:3000 und Port 80), aber es ist an der Zeit, es mit A2hosting live zu schalten, was HTTPS-Anfragen erfordert.
Ich bin zu digicert.com gegangen und habe die Zertifikate heruntergeladen, sie dann in den Mac-Schlüsselbund importiert und sie dann exportiert, wie ich gleich sehen werde. Ich verwende Netbeans. Ich habe das Gefühl, dass ich mit SSL „im Dunkeln arbeite“ und mir wurde dieser Teil nie beigebracht. Bitte helfen Sie!!
Code, der mit http-Anfragen funktioniert:

Code: Select all

   public class ServerRequests {

    public static final String CRLF = "\r\n";
    ServerSocket s;
    
    protected ServerSocket getServerSocket(int port) throws Exception{
        
        return new ServerSocket(port);  
    }

    public void runServer(int port) throws Exception{
        
        s = getServerSocket(port);
        
        while(true) {
            
            try {
                System.out.println("server is running");
                Socket us = s.accept();
                Handler(us);
                
                
            } catch (IOException e) {
                System.err.println(e);
            }
           }
        }
   
    
        public void Handler(Socket s) throws Exception, MessagingException {
Zuerst: Ich erstelle einen Schlüsselspeicher:

Code: Select all

   keytool -genkey -alias [my alias] -keyalg RSA -keystore [mystore.jks]
Dann leere ich den Keystore;

Code: Select all

  Keytool -delete -alias [myalias] -keystore [mystore.jks]
Ich gehe dann zum Schlüsselbund auf meinem Mac, markiere das Stammverzeichnis, die RSA-Zertifizierungsstelle und das andere Zertifikat, das nur meinen Domänennamen enthält, und exportiere sie als .pem auf meinen Desktop. Ich kopiere auch den privaten Schlüssel von meinem A2hosting, füge ihn in eine Textdatei ein und speichere ihn als .pem auf meinem Desktop (ich habe auch mit der Generierung von .pem-Dateien auf andere Weise experimentiert).
I Verwenden Sie dann diesen Befehl, um eine PKCS12-Datei zu generieren:

Code: Select all

   keytool -v -importkeystore -srckeystore [pathtoPKCS12.p12] -
srcstoretype PKCS12 -destkeystore [mystore.jks] -deststoretype
JKS
Code, der bei diesen HTTPS-Anfragen nicht funktioniert:

Code: Select all

   protected ServerSocket getServerSocket(int port) throws Exception{

SSLServerSocketFactory ssf = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();

return ssf.createServerSocket(port);
}

public void runServer(int port) throws Exception{

System.setProperty("javax.net.ssl.keyStore", "/Users/evanredmond/[mystore].jks");
System.setProperty("javax.net.ssl.keyStorePassword", "passphrase");

s = getServerSocket(port);

while(true) {

try {
System.out.println("server is running");
SSLSocket us = (SSLSocket) s.accept();
Handler(us);

} catch (IOException e) {
System.err.println(e);
}

}

}

public void Handler(SSLSocket s) throws Exception, MessagingException {
    
Wenn ich das Programm ausführe, läuft es erfolgreich, bis ich versuche, eine Anfrage von meiner Live-React-App zu senden, die sich auf A2hosting befindet. Dann sage ich:
DAS WURDE GEFANGEN: javax.net.ssl.SSLHandshakeException: (certificate_unknown) Schwerwiegende Warnung erhalten: Certificate_unknown
Ich habe versucht, „einzugeben“ TLS“ anstelle von „TLSv1.1“, zusammen mit der Nichtverwendung der Kette oder des x509-Zertifikats und nur des regulären Zertifikats.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post