web-dev-qa-db-ja.com

Chrome LocalHostでの自己署名証明書のNET :: ERR_CERT_AUTHORITY_INVALIDエラー

ローカルPCで開発環境をセットアップしようとしています。実稼働WebサイトはHTTPSをサポートしているため(最近は誰もサポートしていませんか?)、これをローカルホストでも使用したいと考えています。簡単だと思いましたが、違います。

XAMPをインストールし、すべてをセットアップして、Webサイトにアクセスできるようにしました。ただし、ローカルのサイトのページにアクセスするたびに、chrome警告が表示されます。

NET :: ERR_CERT_AUTHORITY_INVALID

私はそれを試して解決するために次のスレッドに従いました:

Chromeを取得して自己署名ローカルホスト証明書を受け入れる

また、これに基づいて、正しいサブジェクトの別名(SAN)セクションを使用して証明書を作成しました。

https://deliciousbrains.com/https-locally-without-browser-privacy-errors/

その後、CERまたはP7Bファイルを生成し、Chromeにインポートしました。 ApacheとChromeの両方を再起動しました。

証明書を信頼されたルート証明機関に置きます。どういうわけか、Chromeは中間ルート認証局に配置することを決定しました...

Chrome 61を使用していますが、60でも同じでした。

だからどういうわけか私は自己署名証明書をインストールすることができず、基本的にローカルホストでの開発を不可能にするこの警告を受け続けます...

この自己署名は正確に信頼できるものではないことを理解していますが、オフラインで開発する方法が必要ですか?これからウェブサイトをオンラインで構築しなければならないというのは意味がありませんか?...

何か案は?

23
E.S.

KeyStore Explorerツールを使用した手順を次に示します。

証明書を作成したときに以前は見逃していた2つのことは次のとおりです。

  • AKID(Authority Key Identifier)-作成時に使用したものと同じ「CN =」を選択します。
  • 「基本制約」オプションの追加(「is a CA」を選択しないでください)

これらの2つがないと、自己署名証明書をMS-CAPI PKIトラストストア(「信頼されたルート機関」として)にインストールした場合でも、Chromeは警告/エラーを発行します。

ここに私が使用した手順があります。

  1. KSE(KeyStore Explorer)を使用した手順
  2. JKSを作成する
  3. 自己署名証明書の作成
  4. KeyStore Explorerを開きます
  5. ファイル|新規| JKS | OK
  6. JKSファイルのパスワードを作成します
  7. ファイル|名前を付けて保存... |パスワードを入力してください
  8. ファイル名を入力してください| OK
  9. ツール|キーペアを生成する
  10. [アルゴリズムとキーサイズ(2048)]を選択します| OK
  11. 有効期間(5年など)を選択します
  12. 名前を選択(本のアイコン)|名前フィールドに入力| OK
  13. つまり「CN = localhost…」
  14. 拡張機能(非常に重要)を追加します。これにより、証明書の種類と使用方法が決まります。この例は、SSLを使用した標準サーバー証明書用です。
  15. キー使用項目に追加します
  16. [デジタル署名とキー暗号化オプション]チェックボックスを追加します
  17. EKU(拡張キー使用法)オプションを追加します
  18. これらのオプションの両方を選択します。
  19. TLS Webクライアント認証
  20. TLS Webサーバー認証
  21. SANに追加(サブジェクトの別名)
  22. このサーバーが使用されるすべての必要なDNS名とIPアドレス(該当する場合)を追加します。 (必要なすべての値について繰り返します)(例:127.0.0.1およびlocalhost(または)
  23. 完了すると、次のようになります
  24. 完了すると、OID(オブジェクト識別子)がリストされたすべてのフィールドが表示されます。 OK | OK
  25. AKID(Authority Key Identifier)に追加します
  26. 拡張機能「+」を追加
  27. 拡張タイプを追加|機関キー識別子
  28. 上記で作成したCNの機関証明書発行者を選択します(例: "CN = localhost ...")| OK
  29. 「基本的な制約」を追加します(「サブジェクトはCA」をチェックしないでください)
  30. 完了すると、これらがリストされます:「OK」を押します
  31. 注:Chrome Browserが自己署名証明書を信頼できる証明書として検証するには、Basic ConstraintsおよびAKID(Authority Key Identifer)が必要です。
  32. そうしないと、この証明書をMS-CAPIの信頼されたルート証明書に明示的に追加した後でも、警告またはエラーメッセージが表示されます。
  33. 使用するキーペア名のエイリアスを入力します
  34. 秘密鍵ペアのパスワードを入力してください
  35. *注意:このパスワードはJKSファイルのキーストアパスワードと同じである必要があります。そうでない場合、Javaはこの証明書を使用しようとすると静かに失敗する場合があります。
  36. 成功を示すメッセージが表示されます。 | OK
  37. 次に、ファイルを保存します|セーブ
7
atom88

this の後にまったく同じ問題を修正しました。

問題は、証明書の作成方法にあるようです。

以下のコードは、上記のサイトからのものです。

#!/usr/bin/env bash
mkdir ~/ssl/
openssl genrsa -des3 -out ~/ssl/rootCA.key 2048
openssl req -x509 -new -nodes -key ~/ssl/rootCA.key -sha256 -days 1024 -out ~/ssl/rootCA.pem


#!/usr/bin/env bash
Sudo openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <( cat server.csr.cnf )

Sudo openssl x509 -req -in server.csr -CA ~/ssl/rootCA.pem -CAkey ~/ssl/rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext

server.csr.cnfファイル

[req]
default_bits = 2048
Prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=US
ST=New York
L=Rochester
O=End Point
OU=Testing Domain
emailAddress=your-administrative-address@your-awesome-existing-domain.com
CN = localhost

v3.extファイル

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
4
Temp O'rary

KeyStore Explorerと呼ばれるPKIのすべてを作成および操作するために使用するGUI Javaベースの優れたユーティリティがあります。すべてのコマンドラインオプションよりもはるかに簡単です。

http://keystore-Explorer.org/

2
atom88