2016-07-25 6 views
2

자체 서명 된 인증서가있는으로 일부 HTTPS 서버를 만들었습니다. 다음 줄에 Java에서 호스트 주소 변경

socket::connect fails with error code = 10049 

은 내가 발견 CN=hostname에 새로운 인증서를 생성 (컴퓨터 이름입니다) : 나는 클라이언트를 시작하고 때, 그것은 나에게 약간의 바인딩-예외를 알려줍니다

hostname = InetAddress.getLocalHost()); 

하지만이 방법은 실용적이지 않습니다. example.com과 같은 URL로 인증서를 하나 만들고이 인증서를 두 번 이상 사용하고 싶습니다. 그래서 내가 생각 다음했다 :

127.0.0.1  example.com 

을 그리고 나는 URL example.com을 사용하고 있습니다 :이와/etc/hosts 파일 파일에 일부 URL을 추가.

InetAddress.getLocalhost를 변경할 수있는 방법이 있습니까? 또는 일부 고객의 IP 주소 주문 호스트 이름을 사용할 수 있습니까?

InetSocketAddress address = new InetSocketAddress("test.com",9999); 

는 고객의 주소를 만들 수 있지만, 이것은 바인딩-예외가 해결되지 :

은 내가 사용하고 있습니다.

누군가에게 아이디어가 있습니까?

+0

를 사용하려고/q/7576217/608639) 및 [localhost 용 제 3 자 서명 SSL 인증서 또는 127.0.0.1?](https://stackoverflow.com/q/6793174/608639) – jww

+0

***'CN = www.example.com '*** 아마 틀렸다. 호스트 이름은 항상 * SAN *에 있습니다. * CN *에있는 경우, * SAN *에도 있어야합니다 (이 경우 두 번 나열해야합니다). 자세한 규칙 및 이유는 [인증 기관의 인증서 서명 요청 서명 방법] (http://stackoverflow.com/a/21340898/608639) 및 [openssl을 사용하여 자체 서명 된 인증서를 만드는 방법] (http://stackoverflow.com/q/10175812/608639) 또한 자체 서명 된 인증서를 적절한 트러스트 스토어에 배치해야합니다. – jww

답변

0

호스트 이름과 호스트 이름 매핑이 불가능한 경우 IP 주소로 인증서를 만들고 나중에 n 개의 호스트 이름을 동일한 IP 주소에 매핑하십시오.

https://stackoverflow.com (호스트 파일을 통해 example.com에 해결 한 후 CN=127.0.0.1 또는 CN=<LOCAL_IP_ADDRESS>와 함께 인증서를 만든 다음 또한 [개발 환경 localhost로 도메인 이름을 할당] 참조 InetSocketAddress address = new InetSocketAddress("example.com",9999);

+0

안녕하세요! 귀하의 답변 Thx! 새 자체 서명 인증서를 작성하여 기존 키 스토어로 가져 왔습니다. 이제 예외가 발생했습니다 : 예외가 발생했습니다 : javax.microedition.pki.CertificateException : 인증서에 올바른 사이트 이름 localhost와 test.com이 없습니다.이 예외는 알지 못합니다. 왜냐하면 나는 둘 다 수입했기 때문입니다! localhost 및 test.com의 인증서입니다. :-( –

+0

인증서에 몇 개의 항목이 있습니까? CN = 127.0.0.1의 새로운 인증서 파일을 사용해 볼 수 있습니까? –

+0

"인증서에 몇 개의 항목이 있습니까?"라는 의미는 무엇입니까? 인증서를 openssl로 가져 와서 이것을 내 키 저장소로 가져 왔습니다.하지만 내 문제가 해결되지 않았습니다. 클라이언트로서의 브라우저를 사용하면 서버에 연결할 수 있습니다.하지만 Java 응용 프로그램 인 클라이언트에서이 오류를 알게됩니다. 'IOException occured socket :: connect failed with error code = 10051' 위와 같이되는 호스트 네임에 접근하려고 할 때'https : // hostname : 443 /'을 해결하려고합니다. –