2012-06-07 4 views

답변

0

이지만 HTTPS는 RFC 2818 (특히 3.1 절)이 X.509 인증서를 명확하게 나타 내기 때문에 인증서를 필요로합니다.

this answer on ServerFault에서 자세한 내용을 확인할 수 있습니다. 매우 비슷한 질문입니다.

인증서없이 수행하는 작업은 RFC 2818의 범위를 벗어나지 만 여전히 작동 할 수 있습니다. 그러나 다른 구현에 의해 지원되는 것은 다를 수 있습니다. 인증서를 사용하지 않기로 결정한 경우에도 통신 보안을 위해 서버 식별 정보를 확인하는 방법이 필요합니다.

EDIT :

Oracle provider for JSSE는 PSK suties 암호화 방식 (또는 OpenPGP를 인증서에서)을 지원하지 않는다. 공유 키에 가장 가까운 것은 Kerberos 암호 스위트입니다. 다음과 같은 질문에 대한 허용 대답에서

+1

RFC 2818은 TLS에서 대체 방법을 도입하기 훨씬 전에 소개되었습니다. 결과적으로 RFC는 그 당시에 사용할 수있는 것이 없기 때문에 명시 적으로 인증서를 언급합니다. 또한 서버 신원은 공유 비밀 키 (PSK 스위트의 경우)를 알고 있거나 OpenPGP 키를 신뢰함으로써 (OpenPGP가 인증에 사용될 때) 확인할 수 있습니다. –

+0

@ EugeneMayevski'EldoSCorp는 호기심에서 벗어나 JSSE API 내에서 * SecureBlackbox *를 추가 공급자로 통합하므로 (기존 Java 응용 프로그램에서 사용할 수있는 암호 제품군을 만들거나) 완전히 다른 API가 필요합니까? – Bruno

+0

예, 기본 암호화는 수행하지만 SSL 및 기타 고급 기능의 경우 제공되는 다른 API가 제공되며 사용하기 쉽고 유연합니다. –

1

아니, 당신은 할 수 없습니다. HTTPS를 통해 연결하려면 인증서가 필요합니다. 자신의 목적을 위해 자체 서명 된 인증서를 사용할 수 있습니다.

-2

SSL 인증서가 필요하지만이 같은 자체 서명 된 인증서를 만들 수 있습니다

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048 

이 인증서는 keystore.jks에 저장되어 360 일 동안 유효합니다.

http 서버 구현에 따라 일반적으로 keystoreFile 인수와 keystorePass을 제공하여 키 저장소로 지정합니다 (Apache Tomcat의 HTTP 커넥터에서 가져온 등록 정보 이름이지만 다른 http 서버와 비슷합니다).

1

예, 대칭 키 (PSK 암호 군) 및 사용자 이름/암호 조합 (SRP 암호 군)을 포함하여 SSL/TLS에서 여러 가지 인증 방법을 사용할 수 있습니다. Java 내장 메커니즘에 대해서는 말할 수 없지만 out SecureBlackbox 제품 (해당 Java 버전 포함)을 사용하면 SSL/TLS 채널의 클라이언트 및 서버 측에서 위에서 언급 한 메커니즘을 사용할 수 있습니다. 또한 제공된 HTTPS 클라이언트 및 서버 구성 요소에도 적용됩니다.

1

봐 :

How to ignore SSL certificate errors in Apache HttpClient 4.0

당신은 기본적으로 아무것도 확인하지 않는의 TrustManager를 만들 필요가 그냥 모든 것을 신뢰합니다. 개발하는 동안 이것이 왜 유용한 지 알 수 있지만 SSL의 목적을 무효화합니다. TrustManager는 제 3자가 서버로 위장하여 데이터 등을 가로 채고 조작하는 Man In The Middle 공격을 피할 수 있습니다. 따라서 서버 인증서를 확인하지 않으면 아무도 '유효하지 않은'인증서를 제공 할 수 있습니다!

+1

그래도 여전히 인증서를 사용하고 있습니다 (물론 안전하지는 않습니다). 이 질문은 보안에 관해 타협하고 싶지는 않지만 사전 공유 된 대칭 키를 사용하려고합니다. – Bruno

+0

오. 손 위로 - 내 실수. 나는 그 질문을 잘못 읽었다. – Andy

관련 문제