2014-02-10 2 views
0

*에 대한 SSL 인증서를 갖고 싶습니다. 즉, 모든 도메인에 대한 것입니다. 아이디어는 맞춤 CA 인증서로 서명하고 대상 기기에 CA 인증서를 설치 한 다음 해당 기기를 사용하여 IP 기반 주소 (예 : https://192.168.1.123)에 연결하는 것입니다. DNS를 사용할 수 없으며 매번 주소가 다를 수 있습니다. 대상 장치의 브라우저는 경고없이 작동해야하지만 제시된 와일드 카드 인증서가 알려진 MITM 공격을 방지하기 위해 알려진 CA (장치에 설치된 인증서 인 사용자 지정 CA)에 의해 서명 된 경우에만 작동해야합니다.기술적으로 전체 와일드 카드 SSL 인증서를 발행 할 수 있습니까?

브라우저는 그러한 와일드 카드 인증을 이해합니까? 브라우저를 사용하여 경고없이 동시에 MITM 보호 기능을 사용하여 임의의 IP 기반 SSL 서버에 연결할 수있는 다른 해결 방법이 있습니까? (CA의 클라이언트 목록을 사용자 정의 할 수 있다고 가정)

+0

CA를 대상 장치에 추가 할 수있는 경우 원래 서버의 주소를 알기 위해 해당 장치의 DNS를 조정할 수없는 이유는 무엇입니까? 이것은 종종'/ etc/hosts' 나 로컬 이에 상응하는 것을 수정하는 것만큼 쉽습니다. – SingleNegationElimination

+0

이 질문은 프로그래밍에 관한 것이 아니기 때문에 주제가 아닌 것으로 보입니다. –

답변

0

예 와일드 카드 인증서가 있습니다. 자세한 내용은 SSL 인증서 제공 업체에 문의하십시오.

0

공개 키 인프라가 손상되었지만 * 및 브라우저에 대한 인증서를 얻지 못하는 것은 아닙니다. 그것을 받아 들일 것입니다. 관련 RFC는 RFC2818이며 브라우저를 읽을 경우 *.example.comwww*.example.com을 수락하지만 www.*.example.com, www.*.com 또는 *이 아닌 것을 확인할 수 있습니다.

1

HTTPS의 인증서 신원 확인에 대한 두 가지 사양이 있습니다. RFC 2818 (the HTTPS specification itself) Section 3.1 및 RFC 6125 (모든 프로토콜에 대해 이것이 어떻게 수행되는지를 조화시키려는보다 최근의 RFC)가 있습니다.

지금까지 내가 (나는 그것이 전혀 사용 사례를 고려하지 않습니다 생각하지만) RFC 2818는, 그것을 금지하지 않는 해석 할 수 :

이름은 와일드 카드 문자를 포함 할 수 있습니다 *하는 단일 도메인 이름 구성 요소 또는 구성 요소 조각과 일치하는 것으로 간주됩니다. 예 : .a.com은 foo.a.com과 일치하지만 은 bar.foo.a.com이 아닙니다. f .com은 foo.com과 일치하지만 bar.com은 일치하지 않습니다.

RFC 6125는 일반적으로 모두 와일드 카드 인증서 (section 7.2)의 사용을 권장하지 만 가장 왼쪽 라벨 (section 6.4.3)에 원칙적으로 그것을 할 수 있습니다. 이것은 어느 정도는 하나 이상의 레이블이 있어야 함을 의미합니다.

additional errata for RFC 6125 on the subject입니다 :이 문제가 무엇인지를 판단 할 수있는 질문을 구걸하는 것도

참고 : "RFC6125 버그 : 와일드 카드 인증서 표시의 검사 제시 식별자에 얼마나 많은 라벨의 사양이 부족하다" ".com", ".co.uk"와 같이 이른바 도메인 이름 "public suffix"을 구성합니다. "와일드 카드는 가장 왼쪽 레이블 위치에 있어야하며 와일드 카드의 위치 오른쪽에 적어도 하나, 두 개 또는 세 개의 레이블이 있어야합니다. "

사양을 제외하면 실제로는 거의 작동하지 않을 수 있습니다. 상업용 CA는 그 중 하나를 발행해서는 안됩니다. 아마도 실수를 저지르기도하지만 어리석은 일은 아닙니다. 자신의 CA (또는 승인하려는 MITM 프록시 내에 로컬 자동 CA가있는 경우)를 배포하여이를 달성 할 수 있습니다. 이 경우에도 일부 고객은 그러한 인증서의 유효성 확인을 거부합니다. 예 : Chromium even forbids *.com or *.co.uk.

두 경우 모두 와일드 카드는 IP 주소가 아닌 DNS 이름에 사용됩니다. 어쨌든 *에 대한 인증서를 갖고 있으면 사용하기에 적합하지 않습니다. 아마도 대체 DNS 솔루션 (예 : mDNS)을 사용하여 이름을 사용할 수 있습니다.

관련 문제