2012-06-18 2 views
0

"전송 메시지 자격 증명"보안 설정 (전송 클라이언트 자격 증명이 '없음'으로 설정된)을 사용하여 WSHTTPBinding으로 구성된 IIS6에서 WCF 서비스가 실행되고 있습니다. '메시지를'인증서 '로 설정했습니다.이 코드는 VS 2010에서 서비스를 사용하여 자동 생성 된 코드를 통해 생성 된 .NET 클라이언트에서 사용하고 있습니다.스마트 카드의 WCF-x509 인증서

내 개발 환경에서, 서비스 인증서와 IIS SSL 인증서로 모두 사용할 수 있으며, 나는 게으르므로 내 클라이언트 응용 프로그램과 함께 사용할 수 있도록 인증서를 내보냈습니다. 모든 구성이 그 구성에서 훌륭하게 작동하지만 대상 환경이 아닙니다. 이 스마트 카드는이 서비스에 액세스합니다. 동일한 도메인에 있지 않으며 LDAP는 허용되지 않습니다.

문제는 이제 테스트 랩에서이 인증서를 얻고 사용자의 cert와 동일한 CA에서 SSL 인증서를 발급 한 환경을 설정하고 사용자 지정 x509 Cert 유효성 검사기와 서비스 자격 증명을 만들었지 만 내 유효성 검사기를 처음 호출 한 후 무언가가 손 사이에서 발생하고 서비스 추적 로그에 "서명을 확인할 수 없습니다"라는 내부 예외가있는 "메시지 보안 확인 중 오류"라는 오류가 발생합니다. 내가 사용자 정의 유효성 검사기를 통해오고 있으며 메시지 로깅을 받았기 때문에 SOAP 측에서 모든 것이 정상적으로 보이고 반대편에서 인증서를 가져 오는 중입니다. 나는 내가 사용하려고 노력하고있는 모든 인증서가 "신뢰할 수있는 사용자"저장소에 있다는 것을 확인하고 certs를 내보내고 로컬 컴퓨터 "개인"저장소에 넣어 보았습니다.

web.config 파일에서 서비스 인증서 및 클라이언트 인증서를 완전히 이해하지 못한다고 생각합니다. 누군가 나를 좀 도와 주실 수 있습니까?

답변

0

좋아, 그래서 동료들로부터 도움을 받아 내 자신의 질문에 대답 할 수 있었다. 우리가 함께 앉아서 나로 하여금 많은 질문을하고 무작위로 Google 검색을하기 시작하자, 우리는 저를 놀라게 한 구성에서 뭔가를 바꾸기로 결정했습니다.

위로 질문을 끝내려면 "TripleDesSha256Rsa15"로 설정된 암호화 알고리즘 세트를 사용하여 "인증서"로 메시지 자격 증명을 설정해야합니다. 스마트 카드의 인증서 또는 카드 자체가 Sha1 (다른 모든 옵션은 없었 음) 만 지원할 것이라고 밝혀졌습니다. 설정을 "Basic256"으로 변경하면 모든 것이 작동하기 시작했습니다. 나는 결국 그것을 "TripleDesRsa15"로 설정할 수 있었고 작업을 계속했습니다.

기본적으로 WCF는 해당 암호화 알고리즘을 사용하여 액세스 할 수 없으므로 개인 키없이 인증서를 보냅니다. WCF 아니요은 인증서에 액세스하려고 할 때이 예외를 throw하지만 "서명을 확인할 수 없습니다."예외가있는 경우에만 서버 측에서이 예외를 throw합니다. 그것이 추적하기가 좀 더 쉬웠을 것이므로 "서명이 없다"고 말하면 좋겠다. 나는 누군가가 이것을 유용하게 생각할 지 모르지만 WCF에서 스마트 카드를 사용하는 "적절한"방법에 대한 참조를 찾고 있다면 ref로 게시하십시오.

전체적으로 사용하려는 암호화 알고리즘을 확인하고 사용하려는 스마트 카드/인증서에서 작동하는지 확인하십시오.

관련 문제