私は 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.net
とhttps://myserver.net
です。
このサーバーは、それがmyserver.netであることを証明できませんでした。そのセキュリティ証明書は* .myserver.net/CN = myserver.netからのものです。
これは、設定の誤りや攻撃者が接続を傍受したことが原因である可能性があります。
このエラーの原因となっているCommon Nameフィールドに何か問題がありますか?
Rahulが述べたように、これは一般的なChromeとOSXのバグです。私は過去に同様の問題を抱えていました。実際、私はようやくローカルサイトの仕事をテストするときに2回のクリック(それほど多くはないことがわかります)をクリックするのに飽きてきました。
この問題に対する可能な回避策[Windowsを使用して]として、私は多くのうちの1つ 自己署名証明書ユーティリティが利用可能 を使用します。
おすすめの手順:
Chrome 58は Subject Alternative Namesのない証明書のサポートを終了しました を持っています。
先に進むと、これはあなたがこのエラーに遭遇するもう一つの理由かもしれません。
回避策としては、 "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で自己署名証明書を生成するにはどうすればいいですか?も参照してください) )
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
は私のために機能します。
あなたのワイルドカード*.example.com
はしませんはルートドメインexample.com
をカバーしますが、上のあらゆる変種をカバーしますsub - www.example.com
やtest.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にインポートすることを忘れないでください。
私はそれがクロムのバグかもしれないと思います。昔から似たような問題がありました。 こちらを参照
別のブラウザで試してください。私はそれがうまくいくはずだと思います。
これに遭遇し、それをテストするためのリスクを受け入れたいと思っている人のために、解決策があります。Chromeでシークレットモードに行って、「詳細」を開いて「続行」をクリックすることができるでしょう。
あなたがあなた自身を維持し、開発者としてテストしているウェブサイトをチェックする必要がある場合(そしてまだ適切な開発証明書がまだ設定されていない場合)、これは役に立ちます。
もちろん、これは本番環境でWebサイトを使用している人のためのものではありません。このエラーはWebサイトのセキュリティに問題があることを示しています。
あなたはこのエラーにうんざりしているなら。 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