문제

개인 서버에 공개 ID 공급자를 설정하고 Apache 구성 파일에 https에 대한 리디렉션을 추가했습니다.보안 연결을 사용하지 않는 경우(리디렉션을 비활성화한 경우) 정상적으로 로그인할 수 있지만 리디렉션을 사용하면 다음 오류 메시지와 함께 로그인할 수 없습니다.

기본 연결이 닫혔습니다.SSL/TLS 보안 채널에 대한 신뢰 관계를 설정할 수 없습니다.

자체 서명된 인증서를 사용하고 있기 때문인 것 같습니다.

자체 서명된 인증서가 문제인지 확인할 수 있는 사람이 있나요?그렇지 않다면 문제가 무엇인지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

OpenID URL에 SSL을 사용하는 주요 이점은 DNS가 변조되었는지 여부를 발견 할 수있는 메커니즘을 제공한다는 것입니다. 의존 당사자가 자체 서명 된 인증서가있는 OpenID URL이 손상되었는지 여부를 알리는 것은 불가능합니다.

제공자의 엔드 포인트 URL에서 SSL을 사용함으로써 얻을 수있는 다른 이점이 있습니다 (연관성을 설정하기 쉽고 확장 데이터에 대한 도청이 없음)은 자체 서명 된 인증서를 사용한 경우에도 여전히 보유 할 수 있지만 2 차라고 생각합니다.

다른 팁

OpenID는 리디렉션이 투명한 방식으로 설계되었습니다.GET 또는 POST를 통해 각 리디렉션에서 필요한 키/값 쌍이 보존되는 한 모든 것이 올바르게 작동합니다.

자체 서명된 인증서를 사용하지 않는 소비자와의 호환성을 달성하는 가장 쉬운 솔루션은 리디렉션하는 암호화되지 않은 엔드포인트를 사용하는 것입니다. checkid_immediate 그리고 checkid_setup 메시지를 암호화된 메시지로 보냅니다.

서버 코드에서 이 작업을 수행하는 것은 웹 서버 리디렉션을 사용하는 것보다 쉽습니다. 전자는 코드를 함께 유지하면서 POST 요청을 더 쉽게 처리할 수 있기 때문입니다.또한 적절한 검사가 수행되는 한 SSL을 통해 제공되어야 하는지 여부에 관계없이 동일한 끝점을 사용하여 모든 OpenID 작업을 처리할 수 있습니다.

예를 들어, PHP에서 리디렉션은 다음과 같이 간단할 수 있습니다.

// Redirect OpenID authentication requests to https:// of same URL
// Assuming valid OpenID operation over GET
if (!isset($_SERVER['HTTPS']) &&
        ($_GET['openid_mode'] == 'checkid_immediate' ||
         $_GET['openid_mode'] == 'checkid_setup'))
    http_redirect("https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");

다음과 같이 openid.return_to 값은 일반 HTTP 끝점에 대해 생성되었으며 소비자에 관한 한 암호화되지 않은 서버만 처리합니다.세션 및 nonce를 사용하여 OpenID 2.0이 올바르게 작동한다고 가정하면 소비자와 서버 간에 전달되는 모든 정보는 악용 가능한 정보를 공개해서는 안 됩니다.귀하의 브라우저와 OpenID 서버 간의 악용 가능한 작업(비밀번호 스누핑 또는 세션 쿠키 하이재킹)은 암호화된 채널을 통해 수행됩니다.

도청을 막는 것 외에도 SSL을 통해 인증 작업을 수행하면 다음을 사용할 수 있습니다. secure HTTP 쿠키 플래그.이는 다음에 대한 또 다른 보호 계층을 추가합니다. checkid_immediate 허용하려는 경우.

(면책 조항 : 나는 OpenID가 처음이므로 여기에 잘못되었을 수 있습니다.) Open ID 소비자 (예 : StackOverFlow)와 Open ID 제공 업체 (서버) 간의 통신에는 HTTP가 필요하지 않습니다. 평범한 HTTP보다 안전하고 안전하게. 해야 할 일은 로그인 페이지를 표시 할 때만 HTTPS로 전환하도록 서버를 구성하는 것입니다. 이 경우 브라우저 만 자체 서명 된 인증서에 관심을 가질 필요가 있습니다. 인증서를 PC로 가져올 수 있으며 Verisign 발행 인증서와 마찬가지로 모든 것이 안전합니다.

그것처럼 들린다. OpenID 서버의 클라이언트는 루트 인증 기관을 신뢰하지 않습니다.

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