자체 서명 인증서가있는 크롬에서 'net :: ERR_CERT_COMMON_NAME_INVALID'오류를 제거 할 수 없습니다.


19

사람들이 내부 네트워크에서 사용하기 위해 자체 서명 된 인증서를 설정하는 데 어려움이있는 웹에는 수많은 질문이 있습니다.

불과 몇 링크 :
받아들이는 크롬을 얻기 자체 서명 된 로컬 호스트 인증서
크롬 동의를 로컬 호스트 인증서 자체 서명 된
OpenSSL을 가진 자체 서명 인증서 생성을 그 크롬 58 일
StartCom 인증서 오류 : ERR_CERT_AUTHORITY_INVALID

나는 그들 각각을 겪었지만 여전히 (net::ERR_CERT_COMMON_NAME_INVALID).오류를 제거 할 수는 없습니다 .

단계는 다음과 같습니다

  • 서버에서 키 및 인증서 생성

    openssl req \          
    -newkey rsa:2048 \
    -x509 \
    -nodes \
    -keyout file.key \
    -new \
    -out file.crt \
    -subj /CN=Hostname \
    -reqexts SAN \
    -extensions SAN \
    -config <(cat /etc/ssl/openssl.cnf \
        <(printf '[SAN]\nsubjectAltName=DNS:192.168.0.1')) \
    -sha256 \
    -days 3650
    
  • 보안 연결을 위해 새로 생성 된 인증서 및 키 파일을 사용하도록 서버 프로세스 (apache) 설정

  • Chrome 개발자 도구를 통해 https://192.168.0.1:3122 로 이동 하고 내보내기 옵션을 사용하여 서버에서 클라이언트로 인증서 파일 내보내기
  • 알려진 인증 기관 (Fedora 26의) 목록에 CA를 사용하여
    • certutil
    • sudo cp file.crt /etc/pki/ca-trust/source/anchors; sudo upate-ca-trust
  • 크롬 재시작

나는 또한 다양한 값을 시도 CN처럼 위의 필드 : hostname, common.name.com, Common Name,192.168.0.1

이 모든 후에도 https://192.168.0.1:3122로 이동하면 오류가 지속 되고 더 이상 내가하는 일을 알지 못합니다.

텍스트 표현은 다음과 유사합니다.

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            9e:ae:33:24:3a:2d:2b:e2
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN = Hostname
        Validity
            Not Before: Oct 28 20:18:06 2017 GMT
            Not After : Oct 26 20:18:06 2027 GMT
        Subject: CN = Hostname
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a4:80:6c:3a:1b:5e:c4:e6:f6:7d:a5:be:d6:cd:
                    d9:23:bd:1a:b1:e6:f1:e3:b0:76:47:37:a3:d8:b0:
                    60:44:23:c3:8a:58:1c:c3:0a:99:3d:42:32:ca:8b:
                    ec:31:9d:a8:df:6c:13:43:e6:78:12:b8:24:04:5a:
                    9f:6e:11:24:2a:56:e3:20:36:78:a4:cc:ed:45:7c:
                    a3:c1:36:7b:25:f6:6b:2d:01:59:02:74:8b:7a:13:
                    ec:83:63:90:2e:a0:a3:aa:23:de:ea:f0:8e:1f:99:
                    b9:50:b1:5f:64:e4:c9:91:c0:0c:56:15:3c:c0:ff:
                    0f:bf:e1:af:7a:bf:51:40:37:b0:34:20:95:a1:05:
                    14:k2:35:20:e8:98:48:65:ad:26:cc:de:a2:50:48:
                    77:8c:e2:7a:d5:bd:83:96:86:ef:20:79:2f:15:a3:
                    07:48:f4:1f:c7:9d:a1:4b:bd:ee:47:83:51:f3:09:
                    27:ed:b7:09:c8:56:40:0c:68:25:92:d8:62:dc:14:
                    6c:fa:f1:e3:93:1b:79:3c:58:9c:53:69:ff:6a:0f:
                    ee:4c:9f:8e:22:2d:62:6b:b3:ae:22:d6:e3:d0:bd:
                    06:43:a7:c3:e1:1e:23:07:61:b0:4e:64:14:92:0c:
                    5b:f1:a8:c5:29:67:64:7d:65:10:b9:60:41:b8:3b:
                    1y:1f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                DNS:192.168.0.1
    Signature Algorithm: sha256WithRSAEncryption
         11:65:6d:86:04:7f:5a:b0:ce:b2:6e:95:7e:03:8c:fe:a9:d0:
         81:2c:6f:50:63:2e:91:77:79:cd:27:32:b0:19:2b:ac:ea:c0:
         4b:f7:56:d9:be:34:54:f1:a6:1d:bc:d0:3b:bb:bf:90:0e:2d:
         1d:83:28:97:8e:f8:37:5d:3e:00:5a:cd:3d:36:5d:c4:5d:a8:
         7e:a4:59:f0:91:3d:af:3d:28:03:3e:78:3b:5b:0a:fb:24:34:
         02:a2:09:ec:d6:0c:58:63:ab:69:26:5e:fe:1d:1f:19:54:0f:
         68:4e:31:f9:de:1e:de:86:81:3f:b7:62:c5:67:02:05:a2:7a:
         03:f4:b5:3b:ba:c4:ba:26:8e:a2:ee:1c:ef:69:63:07:b0:97:
         fd:a8:42:e2:11:6d:de:b5:70:a5:4a:62:d2:62:d9:5b:17:f4:
         d5:cd:6f:71:75:dd:35:33:55:52:2e:30:29:f8:42:ec:b9:d3:
         82:85:a1:e7:f6:f5:90:dd:cb:07:15:a7:44:70:1c:93:e6:ec:
         03:3a:be:41:87:3c:f0:a4:88:a5:65:d9:29:2c:78:de:90:b8:
         6a:8b:99:6e:d0:e5:8c:08:a4:71:51:fd:1d:e1:8c:0c:17:d5:
         b0:31:fc:7f:99:23:dd:1a:c4:0b:45:17:68:88:67:c6:22:df:
         2b:ac:ea:c0

이러한 목적으로 SSL / TLS 인증서를 설정하는 것은 이번이 처음입니다. 오류를 제거하는 방법에 대한 조언을 참조하십시오.


인증서의 텍스트 표현을 질문에 추가하십시오. 사용하십시오 openssl x509 -noout -text -in <filename>.
garethTheRed

텍스트 표현을 추가했습니다.
Ashesh Kumar Singh

크롬은 IP 주소가 DNS 이름이 아닌 SAN 확장의 IP 주소로 인코딩 될 것으로 예상합니다.
Crypt32

답변:


25

Chrome 58 이상은 더 이상 CN인증서 의 일반 이름 ( ) 과 일치하지 않습니다 .

이제는 대체 대체 이름 ( SAN)을 대신 사용합니다.

SAN적절한 있어야합니다 DNS또는 IP항목.

  • DNS를 사용하는 경우 분석 가능한 FQDN 이름이어야합니다.
  • IP 주소를 사용하는 경우 SAN체인 내에서 명시 적으로 지정해야합니다 .

즉, 이것은 작동해야합니다.

openssl req \
-newkey rsa:2048 \
-x509 \
-nodes \
-keyout file.key \
-new \
-out file.crt \
-subj /CN=Hostname \
-reqexts SAN \
-extensions SAN \
-config <(cat /etc/ssl/openssl.cnf \
    <(printf '[SAN]\nsubjectAltName=DNS:hostname,IP:192.168.0.1')) \
-sha256 \
-days 3650

1
즉,이 때문이다 tools.ietf.org/html/rfc6125#section-5.7.3.1 형 dNSName 존재 subjectaltname에 각 확장자에 대하여 검사해야 X.509 인증서의 DNS 네임 스페이스의 식별과 TLS 인증은 "진술 그러한 확장이 존재하지 않으면, 신원은 인증서의 제목 필드에있는 (가장 구체적인) 공통 이름과 비교되어야합니다. " 따라서 SAN이 존재하면 CN을 확인하지 않습니다.
Jason Martin

7
내가 틀렸다면 수정하지만 Chrome은 더 이상 일반 이름으로 대체되는 인증서를 허용하지 않습니다. 따라서 SAN이 존재하지 않더라도 CN은 확인되지 않습니다. 따라서 SAN은 필수 인 것 같습니다.
krisFR

@krisFR은 SAN 확장이없는 인증서로 이미 시도했지만 실패했습니다. IP 필드를 지정하는 것이 해결책이었습니다.
Ashesh Kumar Singh

1
생명의 은인. Cygwin은 Windows 에서이 작업을 시도하는 모든 사람에게 openssl.cnf 사본을 제공합니다.. \ cygwin \ etc \ defaults \ etc \ pki \ tls \ 또한 CN = hostname 및 DNS : hostname 줄을 호스트 이름 대신 localhost
abelito

완벽하게 일했다! :이 절차 인증서를 추가했다 corvil.com/kb/...
YOTA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.