2013-03-13 1 views
0

우리는 클라이언트 인증서 (WS-Security 메시지가 아닌 IIS 자체)로 전송 보안 (SSL)에 의해 보호되는 IIS에서 WCF 서비스를 사용합니다. wso2carbon.jks에 인증서를 추가했습니다. 전송 조정자가 실행될 때마다 요청 시간이 초과되었습니다. IIS 로그에 오류 500.0 만 표시됩니다. IIS 구성에서 클라이언트 인증서를 무시하도록 설정하면 모든 것이 잘 동작합니다. 또한 Java Axis2 및 .Net 클라이언트 코드는 ISS에서 켜져있는 인증서로 잘 작동합니다.WSO2 ESB 클라이언트 인증서 자격 증명이있는 mediator 보내기

아마도 내가 전화에서 뭔가를 놓쳤습니다. WS 정책은 그러한 경우에 필요합니까? 도움을 주시면 감사하겠습니다.

+0

추가 정보 - 탄소 이동 문제와 같은 것처럼 보입니다. Hello 요청에서 wireshark 모든 전송을 확인하는 것이 핸드 셰이크에 걸렸습니다. 그래서 서버가 Hello를 ESB로 보내고 통신이 중단됩니다. CommonsHTTPTransportSender 만 서버와 핸드 셰이크를 완료 할 수있었습니다 (여전히 인증서를 보내지 않았습니다). Carbon의 PassThrough 및 NIO http 전송에 문제가 있습니까? – adnecs

답변

2

마지막으로 해결 방법을 찾았습니다.

해결책 IIS에서 SSLAlwaysNegoClientCert를 사용하도록 설정합니다. 여기에 좋은 게시판이 있습니다 : Make IIS require SSL client certificate during initial handshake

이유 : : 클라이언트가 보호 된 리소스에 액세스하면 기본적으로 IIS가 SSL을 재협상합니다. NIO 및 HttpPathThrough 전송은 재협상을 허용하지 않습니다 (이는 보안 취약성과 같은 종류의 의미가 있습니다). 따라서 IIS는 클라이언트 Hello를 얻지 못하고 오류 500을 발행하지 않습니다. (WSO2 사람들에게 왜 TryIt 클라이언트가 시간 초과가 될 때까지 지연됩니까?)

비고 : 항상 IIS 측에서 변경할 수는 없으므로 훨씬 좋을 것입니다. WSO2 ESB에서 사용할 수있는 전송은 재협상을 허용하는 데있어보다 융통성이 있습니다 (어쩌면 구성 할 수있는 곳을 놓쳤습니다 ...)

+0

이 문제에 대한 해결책을 찾았다는 이야기를 들었습니다. 하지만 추가 매개 변수 인 -Dsun.security.ssl.allowUnsafeRenegotiation = true를 사용하여 ESB 시작을 시도 했습니까 (필자가 지적한 jira에서 찾았습니다). Jira는 작동하지 않는다고 말합니다. 하지만 그걸 시도했는지 확인하고 싶었습니다. –

+0

Thx. 이 매개 변수는 Core Http 전송에서만 작동하며 NIO 또는 통과에 영향을주지 않습니다. 그래서이 경우 도움이되지 않았습니다. – adnecs

+1

나는 이것에 대해 좀 더 살펴본 결과 여전히 문제가 있음을 발견했다. WSO2 ESB 팀은이 사실을 알고 있으며이 문제를 올바르게 해결하기위한 로드맵에 있습니다. 그들은 또한 CallOut 중개자를 사용하여이 문제를 해결할 것을 제안했습니다. –

0

이 시나리오에서는 WSO2 ESB가 클라이언트로 작동합니다. 따라서 WSO2 ESB의 repository/resources/security 폴더에있는 client-truststore.jks로 인증서를 가져와야합니다. 그런 다음 서비스 호출이 작동해야합니다.

+1

예, client-truststore.jks에 있어야합니다. ESB에서 SSL debugginh를 사용하도록 설정하고 ESB의 어느 시점에서 잘못된 점이 발생하는지 확인할 수 있습니다. SSL 디버그 로그를 사용하는 방법을 설명하는 리소스가 있습니다. –

+0

모든 디버깅에서 PassThrough 및 NIO https 전송 모두 SSL 재협상을 (버그?) 지원하지 않는다는 것이 문제인 것처럼 보입니다. 클라이언트가 인증서로 보호 된 리소스 서버에 요청하면 Hello 요청을 보내 재협상을 요청합니다. 클린트는 응답하지 않고 모든 것이 붙어 있습니다. 핵심 HTTP 전송이 재협상을 완료합니다. 발견 된 버그 발견 : wso2.org/jira/browse/CARBON-11041 관련성이있는 것 같습니다. 문제를 해결할 수 있었습니까? 우리를 진압하는 것은 정말로 방해가됩니다. 그래서 도움을 많이 주시면 고맙겠습니다. – adnecs