문제

myopenid가하는 일을하고 싶습니다. 일단 로그인하면 SSL 인증서를 생성하는 버튼을 클릭 할 수 있습니다.그런 다음 브라우저는이 인증서를 다운로드하여 저장합니다.나중에 yourid.myopenid.com으로 돌아 가면 브라우저에서 저장된 인증서를 인증에 사용할 수 있으므로 비밀번호가 필요하지 않습니다.

내 질문은 이것이 작동하는 데 필요한 것이 무엇입니까?인증서는 어떻게 생성합니까?다시 제출되면 어떻게 확인합니까?

내 스택은 Passenger를 사용하는 Rails on Apache이지만 너무 구체적이지 않습니다.

도움이 되었습니까?

해결책

일반적으로 클라이언트 측 인증서라고합니다.

실제로 사용하지는 않았지만 restful-authentication의 수정 된 버전은 여기에서 찾을 수 있습니다 여기 는 다음과 같은 모습입니다.

Dr.Nic의 게시물

다른 팁

서버에 따라 다르지만 Apache를 사용하는 가장 간단한 솔루션입니다.

FakeBasicAuth <인용구>

"이 옵션이 활성화되면 클라이언트 X509 인증서의 주체 고유 이름 (DN)이 HTTP 기본 인증 사용자 이름으로 변환됩니다. 이는 표준 Apache 인증 방법을 액세스 제어에 사용할 수 있음을 의미합니다. 사용자 이름은 다음과 같습니다.클라이언트의 X509 인증서의 제목 (OpenSSL의 openssl x509 명령을 실행하여 확인할 수 있음 : openssl x509 -noout -subject -in certificate.crt). 사용자로부터 비밀번호를 얻지 못합니다 ... "

레일에 대해서는 확실하지 않지만 일반적인 REMOTE_USER 환경 변수는 어떤 방식 으로든 액세스 할 수 있어야합니다.

인증서를 생성하려면 클라이언트가 키 쌍을 생성하고 최소한 공개 키를 보내도록해야합니다. Firefox에서 자바 스크립트 호출을 통해이 작업을 수행 할 수 있습니다. crypto.generateCRMFRequest 입니다. 다른 브라우저에서도 사용할 수있는 브라우저 별 방법이 있다고 생각합니다. 하지만 먼저 공개 키를 받으면 인증서 발급 방법을 파악해야합니다.

OpenSSL을 사용하여 서버에서 스크립트를 작성할 수 있지만, Firefox가 보내는 CRMF 형식이 아닌 CSR에 대한 기본 지원 기능이 있습니다. 따라서 CRMF를 CSR로 변환하는 코드를 작성해야합니다.이 경우 일종의 DER 처리 기능이 필요합니다. 여기서는 표면을 긁적입니다. 장난감 응용 프로그램에 대해서도 CA를 작동하는 것은 간단하지 않습니다.

OpenId 및 PKI 솔루션과 같은 SSO 솔루션은 중복되며 PKI에는 우아함이 있습니다. 그러나 악마는 세부 사항에 있으며,이 접근 방식이 오래 전부터 있었지만 정부 및 군사 응용 프로그램에서만 시작된 이유가 있습니다.

이를 추구하는 데 관심이있는 경우 CA 서비스를 개발하려는 플랫폼과 관련된 몇 가지 질문에 후속 조치를 취하십시오.

브라우저 별 코드를 사용하여 클라이언트의 브라우저에서 인증서를 생성 할 수 있습니다.이 질문 참조

Ruby에서 OpenSSL을 사용하여 서버 측 SSL 클라이언트 인증서를 생성 할 수도 있습니다 (이 질문 참조 ).(이는 브라우저 별 코드가없는 모든 브라우저에서 작동하지만 서버가 클라이언트의 개인 키를 생성하므로 암호화 순수 주의자에게는 적합하지 않습니다.)

어떤 방법을 사용하여 생성하든 클라이언트 인증서를 요구하도록 웹 서버를 구성해야합니다.예를 보려면 Apache 문서 를 참조하세요.

저는이 문제를 해결하기 위해 노력하고 있습니다.나는 똑같은 일을하고 싶었고 많은 다른 웹 사이트 소유자들이 제 3 자 제공 업체의 유무에 관계없이이 기능을 원한다는 것을 알고 있습니다.

인증서 기반 인증을 처리하는 데 필요한 서버 설정과 firefox 플러그인을 만들었습니다.mypassfree.com으로 이동하여 무료 Firefox 플러그인을 가져옵니다.좋은 설치 프로그램으로 아직 패키지화하지 않았으므로 서버 설정을 위해 이메일 (해당 페이지의 링크)을 보내주세요.

서버 설정은 Apache2 + OpenSSL + Perl입니다 (하지만 perl 스크립트는 모든 언어로 다시 작성할 수 있음)

조나단

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top