2014-11-11 1 views
0

일부 메소드를 노출하고 SSL을 사용하는 Delphi XE2에서 개발 된 SOAP 웹 서버가 있습니다. 델파이 XE2에서도 클라이언트를 만들었고 THTTPRIO를 사용하여 웹 서버에 연결했습니다. 내 질문은 THTTPRIO와 함께 SSL certificatest를 사용하는 것과 관련이 있습니다. 내 webservice를 호출하면 인증서를 설치하지 않아도 작동하지만, 그렇게해서는 안된다고 생각합니다.클라이언트 인증서를 사용하는 THTTPRIO SSL이 제대로 작동하지 않습니다.

두 번째 시나리오 : 설치 한 자체 서명 인증서가 있으며 내 웹 서비스에 대한 호출을 한 후에도 작동합니다.

내 이벤트 : HTTPRIOAfterExecute 및 HTTPRIOBeforeExecute를 검사했을 때 SoapRequest 및 SOAPResponse를 TStream의 문자열로 변환했으며 두 경우 모두 암호화되지 않은 것처럼 보입니다. 나는 또 다른 포럼에서 동일한 질문을했지만 응답이 없음을 발견했습니다.

SOAP SSL 클라이언트와 Delphi에 대한 정보를 검색했지만 새로운 정보를 찾을 수 없습니다. 어떤 분들께서이 문제와 관련하여 조언을 해 주실 수 있습니까?

+0

'인증서가 설치되지 않은 채로'- 클라이언트 쪽에서 의미가 있습니까? 클라이언트는 HTTPS 서버에 액세스하기 위해 서버 인증서를 설치할 필요가 없으며 더 높은 수준의 인증서 만 체인에 필요합니다. – mjn

+0

안녕하세요, 그렇습니다. 클라이언트 측에서는 클라이언트 인증서를 보냈습니다. 서버 측에서 TIdServerIOHandlerSSLOpenSSL을 사용하여 .crt 파일에서 내 서버 인증서를로드합니다. –

+0

은행 및 기타 위험이 높은 환경을 제외하고는 클라이언트 인증서가 필요한 웹 서비스가 많지 않습니다. 클라이언트가 서버 ID를 확인하려는 것이 일반적이며 이는 서버 인증서로 수행됩니다. – mjn

답변

1

내 웹 서비스를 호출하면 인증서가 없어도 작동합니다. 하지만 나는 그렇게해서는 안됩니다.

많은 웹 서비스에는 클라이언트 인증서 (은행 및 기타 위험이 높은 환경을 제외하고)가 필요합니다. 클라이언트가 서버 ID를 확인하려는 것이 일반적이며 이는 서버 인증서로 수행됩니다.

그래서이 웹 서비스는 정상적인 방식으로 작동합니다.


HTTPRIOAfterExecute 및 HTTPRIOBeforeExecute, 내가은 TStream에서 문자열로 SoapRequest 및 SOAPResponse을 변환하고 두 경우 모두

이 올바른 암호화 없는 것 같다, 메시지 페이로드가 나타납니다 SSL/TLS는 전송 계층에서 암호화를 수행하기 때문에 암호화되지 않습니다. 응용 프로그램에서 암호화 된 데이터를 볼 수 없으므로 실제로 작업이 더 쉬워집니다.

메시지 페이로드에 암호화를 추가 할 수 있습니다. 여기에는 일반 라이브러리가 있지만 (암호화 HTTPRio 사용에 대한 경험이 없습니다).

+0

나는 SSL이 작동하는 방식에 대해 좀 더 읽었으며 답변에 맞습니다. SSL이 전송 계층에서 암호화를하고 응용 프로그램 계층에서 암호화하지 않는다는 것을 잊었습니다. (해당 이벤트의 암호화 된 데이터에 관한 내 질문은 바보 같았습니다.)이상한 점은 HTTPRIO를 사용하면 클라이언트 인증서를 설치 한 다음 클라이언트 인증서의 일련 번호를 전달해야한다는 것입니다. 결국에는 RemObjects SDK를 사용하여 작업을 완료하게됩니다. 정보를 가져 주셔서 감사합니다. –

관련 문제