net에서 https 서버와 통신하기 위해 Java 호환 패키지가 있습니다. 컴파일을 실행하면 다음 예외가 발생합니다.
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
클라이언트 컴퓨터와의 연결이 안전하지 않기 때문입니다. 원격 https 서버에 연결하기 위해 로컬 시스템을 구성 할 수있는 방법이 있습니까?
답변
클라이언트 컴퓨터와의 연결이 안전하지 않기 때문입니다.
HTTPS 서버가 아닌 HTTP 서버와 통신하고 있기 때문입니다. 아마도 HTTPS에 올바른 포트 번호를 사용하지 않았을 것입니다.
답변
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
메일 서버에 접속하고 새 연결을 설정하는 로컬 SMTP 도메인 이름이 있어야하며 아래 프로그래밍에서 SSL 특성을 변경해야합니다.
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
props.put("mail.smtp.socketFactory.fallback", "true"); // Should be true
답변
프록시를 통해 POST 요청을 수행하기 전에 회사 방화벽에 로그인하는 것을 잊었을 때 동일한 오류 메시지가 나타납니다.
답변
같은 오류가 발생했습니다. http를 사용하여 https 포트에 액세스했기 때문입니다. http를 https로 변경하면 문제가 해결되었습니다.
답변
Jdevelopr 11.1.1.7 IDE에 내장 된 Java 응용 프로그램에서 동일한 문제가 발생합니다. 프록시 양식 프로젝트 속성 사용을 선택 취소하여 문제를 해결했습니다.
다음에서 찾을 수 있습니다 : 프로젝트 속성-> (왼쪽 창에서) 실행 / 디버그 / 프로필-> 오른쪽 패널에서 클릭 (편집)-> 왼쪽 패널에서 도구 설정-> (프록시 사용) 옵션을 선택 취소하십시오.
답변
나중에 누군가에게 도움이 될 수 있으므로 이것을 답변으로 추가하십시오.
jvm이 IPv4 스택을 사용하여 오류를 해결하도록 강요했습니다. 내 응용 프로그램은 회사 네트워크 내에서 작동했지만 집에서 연결하는 동안 동일한 예외가 발생했습니다. 프록시가 필요하지 않습니다. jvm 인수를 추가했으며
-Djava.net.preferIPv4Stack=true
모든 https
요청이 정상적으로 작동했습니다.
답변
스프링을 사용하여 로컬을 실행하는 경우 사용을 제안합니다.
@Bean
public AmazonDynamoDB amazonDynamoDB() throws IOException {
return AmazonDynamoDBClientBuilder.standard()
.withCredentials(
new AWSStaticCredentialsProvider(
new BasicAWSCredentials("fake", "credencial")
)
)
.withClientConfiguration(new ClientConfigurationFactory().getConfig().withProtocol(Protocol.HTTP))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("localhost:8443", "central"))
.build();
}
단위 테스트를 사용하여 작동합니다.
도움이 되길 바랍니다!