web-dev-qa-db-ja.com

ドメインおよびサブドメイン用の自己署名証明書を作成する - NET :: ERR_CERT_COMMON_NAME_INVALID

私は this 開発目的でWindowsでSigned SSL証明書を作成するためのチュートリアルに従いました、そしてそれは私のドメインの1つにとってすばらしい働きをしました(私はdnsをシミュレートするためにhostsファイルを使います)。それから私は私がたくさんのサブドメインを持っていることを考え出しました、そしてそれはそれらの各々のために証明書を作成するためにお尻の痛みになるでしょう。そのため、serverfaultの回答の中に示されているように、Commonフィールドにワイルドカードを使用して証明書を作成しようとしました。このような:

Common Name: *.myserver.net/CN=myserver.net

ただし、この証明書を信頼されたルート証明機関にインポートした後、メインドメインとそのすべてのサブドメインについて、ChromeでNET::ERR_CERT_COMMON_NAME_INVALIDエラーが発生します。たとえば、https://sub1.myserver.nethttps://myserver.netです。

このサーバーは、それがmyserver.netであることを証明できませんでした。そのセキュリティ証明書は* .myserver.net/CN = myserver.netからのものです。

これは、設定の誤りや攻撃者が接続を傍受したことが原因である可能性があります。

このエラーの原因となっているCommon Nameフィールドに何か問題がありますか?

73
Zed

Rahulが述べたように、これは一般的なChromeとOSXのバグです。私は過去に同様の問題を抱えていました。実際、私はようやくローカルサイトの仕事をテストするときに2回のクリック(それほど多くはないことがわかります)をクリックするのに飽きてきました。

この問題に対する可能な回避策[Windowsを使用して]として、私は多くのうちの1つ 自己署名証明書ユーティリティが利用可能 を使用します。

おすすめの手順:

  1. 自己署名証明書を作成する
  2. 証明書をWindowsの証明書マネージャにインポートする
  3. Chrome証明書マネージャに証明書をインポートする
    注:手順3では、経験した問題を1回解決しますGoogleはバグに対処しています...時間が古くなっていることを考えれば、近い将来にETAはないと考えています。**

    開発にChromeを使うことを好むのと同じくらい、私は最近 Firefox Developer Edition に気付きました。この問題はありません。

    お役に立てれば :)
18
Thomas.Donnelly

Chrome 58は Subject Alternative Namesのない証明書のサポートを終了しました を持っています。

先に進むと、これはあなたがこのエラーに遭遇するもう一つの理由かもしれません。

55
Michael Renner

回避策としては、 "subjectAltName"(X509v3のサブジェクト代替名)として使用しているドメイン名を追加します。これはOpenSSLの設定(Linuxでは/etc/ssl/openssl.cnf)を変更し、v3_reqセクションを以下のように変更することで行えます。

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = myserver.net
DNS.2 = sub1.myserver.net

これで、新しい証明書を生成するときに-extensions v3_reqスイッチを使用することを忘れないでください。 ( OpenSSLを使用してSubjectAltNameで自己署名証明書を生成するにはどうすればいいですか?も参照してください)

24
Fabian S

openssl.confファイルを作成します。

[req]
default_bits = 2048
default_keyfile = oats.key
encrypt_key = no
utf8 = yes
distinguished_name = req_distinguished_name
x509_extensions = v3_req
Prompt = no

[req_distinguished_name]
C = US
ST = Cary
L = Cary
O  = BigCompany
CN = *.myserver.net

[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = myserver.net
DNS.2 = *.myserver.net

このコマンドを実行します:

openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout app.key -out app.crt  -config openssl.conf

出力ファイルapp.crtおよびapp.keyは私のために機能します。

11
Alykoff Gali

あなたのワイルドカード*.example.comしませんはルートドメインexample.comをカバーしますが、上のあらゆる変種をカバーしますsub - www.example.comtest.example.comなどのドメイン

推奨される方法は、 Fabian's Answer のように件名の代替名を設定することです。ただし、現在Chromeでは、件名の代替名の1つとしてCommon Nameを追加する必要があります。回答)。この問題は、SANのexample.comおよびwww.example.comに共通名test.example.comが付いているのに、ChromeからNET::ERR_CERT_COMMON_NAME_INVALIDという警告が出されたために最近発見されました。 example.comをSANの共通名の両方として使用して、新しい証明書署名要求を生成する必要がありました。その後、Chromeは証明書を完全に信頼しました。また、Webサイトを識別するための信頼できる機関として、ルート証明書をChromeにインポートすることを忘れないでください。

11
Jeff Puckett

私はそれがクロムのバグかもしれないと思います。昔から似たような問題がありました。 こちらを参照

別のブラウザで試してください。私はそれがうまくいくはずだと思います。

5
Rahul Sreeram

これに遭遇し、それをテストするためのリスクを受け入れたいと思っている人のために、解決策があります。Chromeでシークレットモードに行って、「詳細」を開いて「続行」をクリックすることができるでしょう。

あなたがあなた自身を維持し、開発者としてテストしているウェブサイトをチェックする必要がある場合(そしてまだ適切な開発証明書がまだ設定されていない場合)、これは役に立ちます。

もちろん、これは本番環境でWebサイトを使用している人のためのものではありません。このエラーはWebサイトのセキュリティに問題があることを示しています。

1
bashmish

あなたはこのエラーにうんざりしているなら。 Chromeがこのように動作しないようにすることができます。私はそれが最善の方法だと言っているのではありません。

回避策として、Windowsのレジストリキーを作成して、証明書にsubjectAlternativeName拡張子が含まれていない場合、Google Chromeがサーバ証明書のcommonNameを使用してホスト名と一致するようにすることができます。証明書.

データ型:ブール値[Windows:REG_DWORD] Windowsレジストリの場所:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome Windows/Mac/Linux/Androidのユーザー設定名:EnableCommonNameFallbackForLocalAnchors値:0x00000001(Windows)、true(Linux)、true(Android)、 (Mac)Windowsレジストリキーを作成するには、次の手順に従ってください。

メモ帳を開くメモ帳に次の内容をコピーして貼り付けますWindows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE \ソフトウェア\ポリシー\ Google\Chrome] "EnableCommonNameFallbackForLocalAnchors" = dword:00000001 [ファイル]> [ファイル名を付けて保存]に移動します。any_filename.regファイル名を付けて保存:すべてのファイル

ファイルの保存場所を選択してください

保存をクリック

保存したファイルをダブルクリックして実行します

レジストリエディタの警告で[はい]をクリックします。

シマンテック社のサポートページでこの情報を見つけました。 https://support.symantec.com/en_US/article.TECH240507.html

0
ambidexterous