Javax.net.ssl.SSLHandshakeException: (certificate_unknown) Получено фатальное предупреждение: certificate_unknownJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Javax.net.ssl.SSLHandshakeException: (certificate_unknown) Получено фатальное предупреждение: certificate_unknown

Сообщение Anonymous »

Мое приложение использует внешний интерфейс React для отправки выборок на собственный внутренний сервер Java (на мой IP-адрес: 443) (Netbeans) на моей локальной MacOS. Все это прекрасно работает с http-запросами на моем локальном устройстве (localhost:3000 и порт 80), но пришло время запустить его с помощью A2hosting, который требует HTTPS-запросов.
Я зашел на digicert.com и загрузил сертификаты, затем импортировал их в связку ключей Mac, а затем экспортировал, к чему я вскоре доберусь. Я использую NetBeans. У меня такое ощущение, что я «работаю в темноте» с SSL, и меня никогда не учили этой части. Пожалуйста, помогите!
Код, работающий с http-запросами:

Код: Выделить всё

   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 {
Сначала: я создаю хранилище ключей:

Код: Выделить всё

   keytool -genkey -alias [my alias] -keyalg RSA -keystore [mystore.jks]
Затем я очищаю хранилище ключей;

Код: Выделить всё

  Keytool -delete -alias [myalias] -keystore [mystore.jks]
Затем я подхожу к связке ключей на своем Mac, выделяю корень, RSA CA и другой сертификат, в котором просто указано мое доменное имя, и экспортирую их как .pem на свой рабочий стол. Я также копирую закрытый ключ со своего хостинга A2, помещаю его в текстовый файл и сохраняю как .pem на своем рабочем столе (я также экспериментировал с созданием файлов .pem другими способами).
Я затем используйте эту команду для создания файла PKCS12:

Код: Выделить всё

   keytool -v -importkeystore -srckeystore [pathtoPKCS12.p12] -
srcstoretype PKCS12 -destkeystore [mystore.jks] -deststoretype
JKS
Код, который не обрабатывает запросы HTTPS:

Код: Выделить всё

   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 {
    
Когда я запускаю программу, она работает успешно, пока я не попытаюсь отправить запрос из моего действующего приложения React, которое находится на хостинге A2. Затем я говорю:
ЭТО БЫЛО ПОЯВЛЕНО: javax.net.ssl.SSLHandshakeException: (certificate_unknown) Получено фатальное предупреждение: certificate_unknown
Я попробовал ввести " TLS» вместо «TLSv1.1», а также не использовать цепочку или x509Certificate и использовать только обычный сертификат.

Подробнее здесь: https://stackoverflow.com/questions/793 ... atal-alert
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»