Я зашел на 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]
Я затем используйте эту команду для создания файла PKCS12:
Код: Выделить всё
keytool -v -importkeystore -srckeystore [pathtoPKCS12.p12] -
srcstoretype PKCS12 -destkeystore [mystore.jks] -deststoretype
JKS
Код: Выделить всё
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 {
ЭТО БЫЛО ПОЯВЛЕНО: javax.net.ssl.SSLHandshakeException: (certificate_unknown) Получено фатальное предупреждение: certificate_unknown
Я попробовал ввести " TLS» вместо «TLSv1.1», а также не использовать цепочку или x509Certificate и использовать только обычный сертификат.
Подробнее здесь: https://stackoverflow.com/questions/793 ... atal-alert
Мобильная версия