2014-05-22 2 views
0

나는 SSLS 클라이언트 인증 설정을 가지고 있습니다. 요청을 다른 응용 프로그램으로 전달할 때 클라이언트 인증서 지문을 요청 헤더에 넣는 방법이 있습니까? 에 따라아파치 클라이언트 인증 - 클라이언트 인증서의 지문을 헤더 값으로 설정

: http://httpd.apache.org/docs/current/mod/mod_ssl.html

아무것도 같은있다 :

RequestHeader set SSL_CLIENT_X_FINGERPRINT "%{SSL_CLIENT_X_FINGERPRINT}s" 

어떤 도움이 평가

마르셀 당신이 할 수있는 가장 가까운 것은 (전체 인증서를 전달하는 것입니다

답변

0

SSL_CLIENT_CERT) 응용 프로그램에 도달하면 지문을 계산하십시오.

구현 방법에 따라 너무 어렵지 않습니다. 예를 들어, 필요한 경우 Java 서블릿 환경에서 Filter을 구현할 수 있습니다. PEM 인코딩 인증서를 DER 형식으로 디코딩하고, 필요한 알고리즘으로 초기화 된 MessageDigest에있는 byte [] 배열을 전달합니다 (결과를 16 진수로 인코딩 할 수도 있습니다).

"지문"은 다소 느슨한 단어입니다. 대부분의 도구는 요즘 SHA-1을 사용하지만, 반드시 그렇지는 않습니다 (변경 될 수도 있음).

참고로 기존 인증을 사용하지 않고 잠재적 인 자체 서명 된 인증서 (또는 알 수없는 CA가 서명 한 인증서)를 수락하고 목록에 대해 해당 지문을 비교하는 것이 좋습니다. 알 잖아. 이 경우,이 모든 "X.509 인증서"측면에 관심이 많지는 않지만이 인증서를 공개 키 컨테이너로만 사용하고 있습니다 (SSL/TLS를 사용하면 클라이언트가 일치하는 개인 키를 가짐), 따라서 인증서가 아닌 공개 키를 비교하는 것이 더 유연 할 수 있습니다.

+0

안녕하세요, bruno. 당신의 대답에 감사드립니다. 당신 말이 맞아요. 우리는 우리 자신의 CA를 만들고 일부 클라이언트가 우리가 서명 한 인증서를 사용하여 서버에 연결하기를 원합니다. 핸드 셰이크가 완료된 후에는 클라이언트 DN에 충분해야하며 알려진 클라이언트 목록과 비교해야합니다. 우리는 연결 클라이언트에 대해 알아보고 아파치가 SSL 종료를 처리하도록하고 싶을뿐입니다. – Marcel

+0

그렇다면 자신의 CA가있는 경우 실제로는 일반 PKI로 사용하고 Subject DN을 직접 사용할 수 있습니다. 이 경우 Apache Httpd 구성에서 CA (또는 신뢰하는 제한된 수의 CA)의 인증서 만 수락하는 것이 가장 좋습니다. – Bruno

관련 문제