Chromeに自己署名ローカルホスト証明書を受け入れさせる


1212

localhost CNの自己署名SSL証明書を作成しました。Firefoxは、期待どおりに、最初に不満を述べた後、この証明書を受け入れます。ただし、ChromeとIEは、信頼されたルートの下のシステム証明書ストアに証明書を追加した後でも、それを受け入れることを拒否します。ChromeのHTTPSポップアップで[証明書情報を表示]をクリックすると、証明書が正しくインストールされていると表示されますが、証明書は信頼できないと主張しています。

Chromeに証明書を受け入れて不満を言わないようにするにはどうすればよいですか?


14
Firefoxが最初にそれについて不満を言うと、それは証明書の例外を追加するように求めているということですか?これは、証明書が正しくインストールされている場合は発生しません。3つのブラウザすべてが不満を持っているように思えますが、Firefoxではその不満を取り消すことができます。具体的な答えはないので、これをコメントとして投稿していますが、私は正確にこれを実行し、3つのブラウザーすべてで正常に動作します。まず、IEで試してみて、それから他の2つについて心配することをお勧めします。すみません、これ以上助けられませんでした!
starskythehutch '09 / 09/28

1
DNS名の表示方法を含め、適切な形式の証明書を作成する必要があります。OpenSSLは、そのままの状態でブラウザーを満足させる方法でそれらを提示しません。opensslで自己署名証明書を作成する方法を参照してください
jww 2015年

4
Firefoxはシステム証明書ストアを使用しませ
curiousguy 2015

4
証明書の署名にSHA-1が使用されている場合、カスタム証明書を正常に追加できたとしても、Chromeの最近のバージョン(57年頃)で警告が表示されます。いずれにしても、開発者ツールの「セキュリティ」パネルには、問題が何であるかがより具体的に示されますnet::ERR_CERT_WEAK_SIGNATURE_ALGORITHM
SeldomNeedy 2017

2
開発者向けではないため、開発目的でのChromeの使用を停止しました。通常、このような状況に陥った人は、自分が何をしているかを知っています。感謝しますが、感謝しません。Chromeに十分な不満を感じました。
GTodorov 2018

回答:


66

2020-05-226つのシェルコマンドだけで、これを実現できます

ブラウザのセキュリティ設定を変更しないでください

次のコードを使用すると、(1)独自のCAになることができ、(2)SSL証明書をCAとして署名することができます。(3)次に、(サーバーに送信されるSSL証明書ではなく)CA証明書をChrome / Chromiumにインポートします。(はい、これはLinuxでも機能します。)

######################
# Become a Certificate Authority
######################

# Generate private key
openssl genrsa -des3 -out myCA.key 2048
# Generate root certificate
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 825 -out myCA.pem

######################
# Create CA-signed certs
######################

NAME=mydomain.com # Use your own domain name
# Generate a private key
openssl genrsa -out $NAME.key 2048
# Create a certificate-signing request
openssl req -new -key $NAME.key -out $NAME.csr
# Create a config file for the extensions
>$NAME.ext cat <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = $NAME # Be sure to include the domain name here because Common Name is not so commonly honoured by itself
DNS.2 = bar.$NAME # Optionally, add additional domains (I've added a subdomain here)
IP.1 = 192.168.0.13 # Optionally, add an IP address (if the connection which you have planned requires it)
EOF
# Create the signed certificate
openssl x509 -req -in $NAME.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \
-out $NAME.crt -days 825 -sha256 -extfile $NAME.ext

要点をまとめると:

  1. CAになる
  2. CAキーを使用して証明書に署名する
  3. myCA.pemChrome設定で認証局としてインポートします([設定]> [証明書の管理]> [認証局]> [インポート])。
  4. .crtサーバーでファイルを使用する

追加の手順(少なくともMacの場合):

  1. 「ファイル>ファイルのインポート」でCA証明書をインポートし、リストから見つけて右クリックし、「>信頼」を展開して、「常に」を選択します。
  2. extendedKeyUsage=serverAuth,clientAuth以下を追加しbasicConstraints=CA:FALSE、「CommonName」が$NAMEセットアップを要求するときと同じに設定されていることを確認してください

仕事を確認できます

openssl verify -CAfile myCA.pem -verify_hostname bar.mydomain.com mydomain.com.crt

2
@maverickのブラウザとオペレーティングシステムには、信頼できるCAの数に制限があります。誰でもCAになることができますが、だれでも自分の証明書を信頼できるようにするには、信頼できるCAとして手動で追加する必要があります(手動で証明書をインポートするときにChromeに指示するため)。
JellicleCat

2
すごい!私のようなMacユーザーへの2つのコメント:最後の行で、-days 825代わり-days 1825superuser.com/questions/1492643/…を使用します。ルート証明書をキーチェーンアクセスにインポートするには、「ファイル> [ファイルをインポート]を選択しますが、リストから見つけるには、ファイルを右クリックして[">信頼する]を展開し、[常に]を選択します。
michielbdejong

2
あなたが必要な場合は、PEMのファイルの代わりに、CRTの心配をお近くのdevのサーバー用のファイルをしていない、ただ組み合わせ.CRT.csrですと、ファイルとその保存の.pemファイル、あなたが行ってもいいです。
Kerem Baydo Bayan

1
最後に動作します!この答えのBRAVO。myCA.pemをChromeまたはFirefoxに読み込むことを忘れないでください([設定]> [証明書の管理]> [機関]> [インポート])
Fryser wow

3
IPベースのLANサーバー用にDNS.1をIP.1に変更しました。できます。ありがとう。
dw1

766

以下の場合localhostのみ:

これをクロムに貼り付けるだけです:

chrome://flags/#allow-insecure-localhost

ハイライトされたテキストが表示されるはずです:localhostからロードされたリソースに対して無効な証明書を許可する

をクリックしEnableます。


3
警告を無効にします...キャッシュも無効にします!bugs.chromium.org/p/chromium/issues/detail?id=103875
Hugo Wood

4
シークレットモードで
Chrome

5
これ-迷惑な赤い「安全でない」メッセージに耐えられる場合。それ以外の場合は、何時間もの不可解なopensslの呪文が実行され、Chromeの内部の証明書マネージャーに対処しようとします。
ティンボ

10
この回答が投票された理由はわかりませんが、無効な証明書と自己署名証明書には違いがあります。問題は自己署名証明書に関するものです。
Mehdi

2
まったくうまくいきませんでした。どのような私のために働いたことは、この答えで説明したように、のsubjectAltNameを含む自己署名証明書を生成することでした:stackoverflow.com/a/42917227/2873507
ヴィックSeedoubleyew

507

これは私のために働きました:

  1. Chromeを使用して、HTTPS経由でサーバーのページにアクセスし、赤い警告ページを通過します(まだ行っていない場合)。
  2. 開きChrome Settings > Show advanced settings > HTTPS/SSL > Manage Certificates
  3. Authoritiesタブをクリックし、下にスクロールして、証明書に付けた組織名の下にある証明書を見つけます。
  4. それを選択し、[編集]をクリックします(:最近のバージョンのChromeでは、ボタンは[編集] ではなく[詳細]になっています)。すべてのチェックボックスをオンにして、[OK]をクリックします。Chromeを再起動する必要がある場合があります。

あなたは今あなたのページに素敵な緑の鍵をかけるべきです。

編集:新しいマシンでこれを再試行しましたが、赤い信頼されていない証明書のページから続行しただけでは、[証明書の管理]ウィンドウに証明書が表示されませんでした。私は次のことをしなければなりませんでした:

  1. 信頼されていない証明書(https://赤で取り消し線が引かれている)が表示されているページで、ロック>証明書情報をクリックします。注:新しいバージョンのChromeでは、を開きDeveloper Tools > Security、を選択する必要がありますView certificate
  2. をクリックしDetails tab > Exportます。PKCS #7, single certificateファイル形式として選択します。
  3. 次に、元の指示に従って証明書の管理ページに移動します。をクリックしてAuthorities tab > Import、証明書のエクスポート先のファイルを選択 PKCS #7, single certificate し、ファイルタイプとして選択することを確認します
  4. 証明書ストアのプロンプトが表示されたら、[ 信頼されたルート証明機関]を選択します
  5. すべてのチェックボックスをオンにして、[OK]をクリックします。Chromeを再起動します。

143
Linuxマシンでこれを試しましたが、xxx.xxx.com:証明機関ではないため、インポートが失敗したと表示されました。
マット2013

15
@kellenに感謝..ただし、Chromeバージョン29.0.1547.57ベータ版を使用すると、証明書情報のどこにも「エクスポート」オプションが表示されないようです。つまり、「詳細」セクションはありますが、タブの形式ではありません。折りたたみ/展開可能なブロックとして表示されます。 i.imgur.com/dDmNEIh.png
cavalcade

20
Chrome 37では、便利で説明的なExportボタンはもうありません。これは素晴らしいCopy to fileボタンに置き換えられているようです。なぜ「輸出」が守られなかったのか、心だけが揺れる
コリン

13
@Jakobud、証明書シンボルをデスクトップまたは何かにドラッグするだけで、エクスポートされます。しかし、私が知る限り(Chrome 39)、OS X(Yosemite)では残りの回答は機能しません。
db

33
Chrome 56以降、WindowsでSSL証明書設定にアクセスするには、開発者ツール(CTRL + SHIFT + i)を使用する必要があります。[セキュリティ]タブに移動し、[証明書の表示]ボタンをクリックします。
void.pointer 2017

167

Chrome 58以降のアップデート(2017年4月19日リリース)

Chrome 58以降、のみcommonName 使用してホストを識別する機能は削除されました。証明書はsubjectAltName、ホストを識別するために使用する必要があります。詳細についてはこちらバグトラッカーはこちらをご覧ください。以前は、subjectAltNameマルチホスト証明書にのみ使用されていたため、一部の内部CAツールには含まれていませんでした。

自己署名証明書が以前は問題なく機能していたが、突然Chrome 58でエラーが発生し始めた場合、これが理由です。

したがって、自己署名証明書(または自己署名CAによって署名された証明書)を生成するために使用している方法が何であれ、サーバーの証明書に、単一のホストだけの場合でもsubjectAltName、適切なエントリDNSIPエントリ/エントリが含まれていることを確認してください。

opensslの場合、これは/etc/ssl/openssl.cnfUbuntu上の)OpenSSL構成が単一のホストに対して次のようなものを持つ必要があることを意味します

[v3_ca]   # and/or [v3_req], if you are generating a CSR
subjectAltName = DNS:example.com

または複数のホストの場合:

[v3_ca]   # and/or [v3_req], if you are generating a CSR
subjectAltName = DNS:example.com, DNS:host1.example.com, DNS:*.host2.example.com, IP:10.1.2.3

Chromeの証明書ビューア(F12の[セキュリティ]タブに移動しました)では、次のように表示されExtensionsますCertificate Subject Alternative Name

Chrome証明書ビューア


12
Chrome 58以降のアップデートについて投稿していただきありがとうございます。WindowsでSANを含む自己署名証明書の作成を検討している人にとって、1つの簡単な方法は、New-SelfSignedCertificate PowerShellコマンドレットを使用することです。 New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My
DanO 2017

3
@DanOありがとうございます!他の回避策はいずれも、Win10では機能しませんでした。少なくともPowershellが有効な証明書を生成することを知って嬉しいです!
ブライアンドナヒュー

1
Reddit for Chrome 58+で解決策が見つかりました。管理者のコマンドプロンプト:reg add HKLM \ Software \ Policies \ Google \ Chrome / v EnableCommonNameFallbackForLocalAnchors / t REG_DWORD / d 1
IrfanClemson

3
、あなたが言う、ポリシーファイルを作成する必要がLinux上でポリシーを作成するには、/etc/opt/chrome/policies/managed/EnableCommonNameFallbackForLocalAnchors.jsonこれらの内容に: { "EnableCommonNameFallbackForLocalAnchors": true }
seanf

5
「Chromeの証明書ビューア(F12の[セキュリティ]タブに移動しました)ではExtensionsCertificate Subject Alternative Name「」としてリストされているはずです。F12開発ツール(Chrome 62)の[セキュリティ]タブを表示しても、[拡張機能]セクションが表示されません。他の場所に移動しましたか?
Thunderforge

143

Macでは、キーチェーンアクセスユーティリティを使用して自己署名証明書をシステムキーチェーンに追加でき、Chromeはそれを受け入れます。私はここに段階的な手順を見つけました:

Google Chrome、Mac OS X、自己署名SSL証明書

基本的に:

  1. Xの付いたロックアイコンをダブルクリックし、証明書アイコンをデスクトップにドラッグアンドドロップします。
  2. このファイルを開く(拡張子が.cerで終わる); これにより、証明書を承認できるキーチェーンアプリケーションが開きます。

12
重要なことに、これを有効にするにはChromeの再起動が必要になる場合があります。
Xiong Chiamiov 2014

10
証明書の設定を編集してSSLを手動で信頼できるようにする必要がありました
NeDark

1
これは、ヨセミテ、10.10.5、Chromeバージョン46.0.2490.80(64ビット)で動作しました。ありがとう!
ロメレム2015

2
El Capitanで動作し、再起動は必要ありません。証明書を追加してクリックし、[信頼]ドロップダウンを展開しAlways Trustて[SSL]セクションに設定しました。基本的に@NeDarkが言ったこと。
トム

1
証明書をデスクトップからキーチェーンにドラッグアンドドロップして、承認を行う必要がありました。
jmq

130

ページの任意の場所をクリックして、BYPASS_SEQUENCEを入力します

thisisunsafe」はChromeバージョン65のBYPASS_SEQUENCEです

badidea」Chromeバージョン62〜64。

danger」は以前のバージョンのChromeで機能していました

入力フィールドを探す必要はありません。入力するだけです。変な感じがしますが、動作しています。

Mac High Sierraで試してみました。

彼らが再度変更したかどうかを再確認するには、最新のクロムソースコードに移動します

BYPASS_SEQUENCEを探すには、現時点では次のようになります。

var BYPASS_SEQUENCE = window.atob('dGhpc2lzdW5zYWZl');

現在は偽装していますが、実際のBYPASS_SEQUENCEを確認するには、ブラウザコンソールで次の行を実行します。

console.log(window.atob('dGhpc2lzdW5zYWZl'));

6
wtf、これは私のためにうまくいったおかげでubuntu 16.04 63.0.3239.84
gries 20'17

8
このコードは新しいバージョンから変更されています。新しいフレーズは次のthisisunsafe
Java Guy

6
Windows 10のChrome 65では、タイピングthisisunsafeはこのサイトを例外に追加することのみに影響があるようです。(アドレスバーにはまだ「安全ではありません」と赤で表示されています。)
Ryan

2
これは機能していますが、最初のロードだけのために、ページをナビゲートする場合は、bupass_squenceを再度入力する必要があります
talsibony

"thisisunsafe" BYPASS_SEQUENCEは、Mac Chrome 72でこのページから機能する唯一のものでした。自己署名証明書を作成する手間が省けたような気がします...!
Jono 2018年

95

Linux

Linuxを使用している場合は、次の公式Wikiページをフォローすることもできます。

基本的に:

  • Xの付いたロックアイコンをクリックします。
  • 証明書情報を選択
  • 詳細タブに移動します
  • エクスポート...(ファイルとして保存)をクリックします。

これで、次のコマンドで証明書が追加されます(YOUR_FILEはエクスポートされたファイルです)。

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YOUR_FILE -i YOUR_FILE

すべての証明書を一覧表示するには、次のコマンドを実行します。

certutil -d sql:$HOME/.pki/nssdb -L

それでも機能しない場合は、このバグの影響を受ける可能性があります。 問題55050:Ubuntu SSLエラー8179

PS libnss3-tools上記のコマンドを使用する前に、があることを確認してください。

お持ちでない場合は、次の方法でインストールしてください。

sudo apt-get install libnss3-tools # on Ubuntu
sudo yum install nss-tools # on Fedora, Red Hat, etc.

おまけとして、次の便利なスクリプトを使用できます。

$ cat add_cert.sh
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n $1 -i $1
$ cat list_cert.sh
certutil -d sql:$HOME/.pki/nssdb -L # add '-h all' to see all built-in certs
$ cat download_cert.sh
echo QUIT | openssl s_client -connect $1:443 | sed -ne '/BEGIN CERT/,/END CERT/p'

使用法:

add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]

トラブルシューティング

  • --auto-ssl-client-authパラメータを指定してChromeを実行する

    google-chrome --auto-ssl-client-auth


すばらしい、私はあなたのスクリプトが大好きです。ただし、QUITは必要ありません(いずれにしても、QUITのようなHTTPコマンドはありません)。sedも必要ありません。nssツールは、BEGIN CERTとEND CERTの間の証明書をフィルターで除外できます。だからdownload_cert.sh:単純にこのことができますecho | openssl s_client -connect $1:443
ポール・トビアス

私は他のオプションを試しましたが、現在Linux 4のChrome 4xで動作するのはこのオプションのみで、組み込みのツールを使用してストアにインポートすることを拒否しました。
Kendrick

93

Macでは、次のようにして、システムレベルでChromeとSafariによって完全に信頼される証明書を作成できます。

    # create a root authority cert
    ./create_root_cert_and_key.sh

    # create a wildcard cert for mysite.com
    ./create_certificate_for_domain.sh mysite.com

    # or create a cert for www.mysite.com, no wildcards
    ./create_certificate_for_domain.sh www.mysite.com www.mysite.com

上記では、次のスクリプトとサポートファイルv3.extを使用して、サブジェクトの別名の欠落エラー回避しています

独自のルート認証局を使用して完全に信頼できる新しい自己署名証明書を作成する場合は、これらのスクリプトを使用して行うことができます。

create_root_cert_and_key.sh

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

create_certificate_for_domain.sh

    #!/usr/bin/env bash

    if [ -z "$1" ]
    then
      echo "Please supply a subdomain to create a certificate for";
      echo "e.g. www.mysite.com"
      exit;
    fi

    if [ ! -f rootCA.pem ]; then
      echo 'Please run "create_root_cert_and_key.sh" first, and try again!'
      exit;
    fi
    if [ ! -f v3.ext ]; then
      echo 'Please download the "v3.ext" file and try again!'
      exit;
    fi

    # Create a new private key if one doesnt exist, or use the xeisting one if it does
    if [ -f device.key ]; then
      KEY_OPT="-key"
    else
      KEY_OPT="-keyout"
    fi

    DOMAIN=$1
    COMMON_NAME=${2:-*.$1}
    SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
    NUM_OF_DAYS=825
    openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr
    cat v3.ext | sed s/%%DOMAIN%%/"$COMMON_NAME"/g > /tmp/__v3.ext
    openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext 

    # move output files to final filenames
    mv device.csr "$DOMAIN.csr"
    cp device.crt "$DOMAIN.crt"

    # remove temp file
    rm -f device.crt;

    echo 
    echo "###########################################################################"
    echo Done! 
    echo "###########################################################################"
    echo "To use these files on your server, simply copy both $DOMAIN.csr and"
    echo "device.key to your webserver, and use like so (if Apache, for example)"
    echo 
    echo "    SSLCertificateFile    /path_to_your_files/$DOMAIN.crt"
    echo "    SSLCertificateKeyFile /path_to_your_files/device.key"

v3.ext

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

    [alt_names]
    DNS.1 = %%DOMAIN%%

もう1つのステップ-自己署名証明書をChrome / Safariで完全に信頼できるようにする方法

自己署名証明書がChromeとSafariで完全に信頼されるようにするには、新しい認証局をMacにインポートする必要があります。これを行うには、次の手順、またはmitmproxy Webサイトにあるこの一般的なプロセスのより詳細な手順に従ってください

これは、コマンドラインで次の2つの方法のいずれかで実行できます。このコマンドを使用すると、パスワードの入力を求められます。

$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain rootCA.pem

またはKeychain Accessアプリを使用して:

  1. キーチェーンアクセスを開く
  2. 「キーチェーン」リストで「システム」を選択します
  3. 「カテゴリ」リストから「証明書」を選択します
  4. 「ファイル|アイテムのインポート...」を選択します
  5. 上で作成したファイル「rootCA.pem」を参照して選択し、「開く」をクリックします
  6. 「証明書」リストで新しくインポートした証明書を選択します。
  7. 「i」ボタンをクリックするか、証明書を右クリックして、「情報を見る」を選択します
  8. 「信頼」オプションを展開します
  9. 「この証明書を使用する場合」を「常に信頼する」に変更
  10. ダイアログを閉じると、パスワードの入力を求められます。
  11. ターゲットドメインを使用しているすべてのタブを閉じて再度開くと、安全に読み込まれます。

おまけとして、Javaクライアントが証明書を信頼する必要がある場合は、証明書をJavaキーストアにインポートすることでそれを行うことができます。証明書がすでに存在する場合は、変更があった場合に更新する必要があるため、これによりキーストアから証明書が削除されます。もちろん、これはインポートされる証明書に対してのみ行われます。

import_certs_in_current_folder_into_java_keystore.sh

KEYSTORE="$(/usr/libexec/java_home)/jre/lib/security/cacerts";

function running_as_root()
{
  if [ "$EUID" -ne 0 ]
    then echo "NO"
    exit
  fi

  echo "YES"
}

function import_certs_to_java_keystore
{
  for crt in *.crt; do 
    echo prepping $crt 
    keytool -delete -storepass changeit -alias alias__${crt} -keystore $KEYSTORE;
    keytool -import -file $crt -storepass changeit -noprompt --alias alias__${crt} -keystore $KEYSTORE
    echo 
  done
}

if [ "$(running_as_root)" == "YES" ]
then
  import_certs_to_java_keystore
else
  echo "This script needs to be run as root!"
fi

実行中に「秘密鍵rootCA.keyを開くときにエラーが発生しました」が表示される$ ./create_root_cert_and_key.sh。macOS 10.12.4およびOpenSSL 0.9.8zh 2016
ドーナツ

1
$ openssl genrsa -out rootCA.key 2048前に実行$ ./create_root_cert_and_key.shすると、私が遭遇した「秘密鍵rootCA.keyを開く際のエラー」エラーが修正されます。
ドーナツ

@donut-これを指摘してくれてありがとう-私はその行が重複していたので、あなたが見た問題を引き起こしたと確信しています...
Brad Parks

openssl req -new -newkey rsa:2048 -sha256 -nodes -key device.key -subj "$SUBJECT" -out device.csrがエラー「PRIVate Key device.keyを開くときにエラーが発生しました」が原因でこのコマンドが作成されると考えていましたがdevice.key、何らかの理由で読み取ろうとしているようです
Lenny

2
解決策(他の誰かがこれにぶつかった場合に備えて)を次のように変更-keyすることが-keyoutopenssl req -new -newkey rsa:2048 -sha256 -nodes -keyout device.key -subj "$SUBJECT" -out device.csr
レニー

90

更新11/2017:この回答は、Chromeのほとんどの新しいバージョンではおそらく機能しません。

UPDATE 02/2016:Macユーザー向けのより良い説明がここにあります。

  1. 追加するサイトで、アドレスバーの赤いロックアイコンを右クリックします。ここに画像の説明を入力してください

    1. [ 接続 ]というラベルの付いたタブをクリックし、[ 証明書情報 ]をクリックします。

    2. [ 詳細 ]タブをクリックし、[ ファイルにコピー... ]ボタンをクリックします。証明書のエクスポートウィザードが開きます。[ へ]をクリックして、[ ファイル形式エクスポート]画面に進みます。

    3. DERエンコードバイナリX.509(.CER)を選択し、[ 次へ ]をクリックします

    4. [ 参照...]をクリックして、ファイルをコンピューターに保存します。わかりやすい名前を付けます。[ 次へ ]をクリックし、[ 完了 ]をクリックします。

    5. Chrome設定を開き、一番下までスクロールして、[ 詳細設定を表示... ]をクリックします。

    6. 下にHTTPS / SSL、クリックし証明書を管理します...

    7. [ 信頼されたルート証明機関 ]タブをクリックし、[ インポート... ]ボタンをクリックします。これにより、証明書のインポートウィザードが開きます。[ 次へ]をクリックして、[インポートするファイル]画面に移動します。

    8. [ 参照... ]をクリックして、以前に保存した証明書ファイルを選択し、[ 次へ ]をクリックします。

    9. [ すべての証明書を次のストアに配置する]を選択します。選択したストアは、信頼されたルート証明機関である必要があります。そうでない場合は、[ 参照... ]をクリックして選択します。[ 次へ]をクリックして終了します

    10. セキュリティ警告で[ はい]をクリックします。

    11. Chromeを再起動します。


2
@AJeneralええ、Chromeは再び変わりました。この記事の説明は最近うまくいきました。
kmgdev 14

2
このオプションは、このコメントの日付の最新のMac Chromeには存在しません。
y3sh 2015

1
@ kgrote、Chromeには独自の証明書ストアはありません。Windowsの追加と削除のみです。そのため、より良い方法は、単にを使用certmgr.mscして証明書を追加および削除することです。
Pacerier 2015年

1
おかげで私のために働いた。Chromeを再起動する必要があり、最も重要なことに、私の証明書は2017年より前に期限切れになる必要がありました。SHA-1など。
ioanb7

1
クロムがまだ変更されました!次に、「アドレスバーで、Xの小さなロックをクリックします。これにより、小さな情報画面が表示されます。」動作しません。
Bruno Bronosky 2017

59

Macを使用していて、[エクスポート]タブが表示されない場合、または証明書を取得する方法がこれで機能した場合:

  1. https://の前にあるカギをクリックします
  2. 「接続」タブに移動します
  3. 「証明書情報」をクリック

    これでこれが見えるはずです: もちろん、さまざまな情報とあなたの情報は信頼できるものとしてマークする必要があります(そうでなければ、おそらくここにいないでしょう)

  4. その小さな証明書アイコンをドラッグして、デスクトップ(または任意の場所)に移動します。

  5. ダウンロードした.cerファイルをダブルクリックすると、キーチェーンにインポートされ、証明書のリストへのキーチェーンアクセスが開きます。

    場合によっては、これで十分であり、ページを更新できます。

    さもないと:

  6. 新しく追加した証明書をダブルクリックします。
  7. 信頼ドロップダウンで、[この証明書を使用するとき]オプションを[常に信頼する]に変更します。

問題のページをリロードすると、問題が解決するはずです!お役に立てれば。


ウルフから編集

これを少し簡単にするために、次のスクリプト(source)を使用できます。

  1. 次のスクリプトをとして保存しますwhitelist_ssl_certificate.ssh

    #!/usr/bin/env bash -e
    
    SERVERNAME=$(echo "$1" | sed -E -e 's/https?:\/\///' -e 's/\/.*//')
    echo "$SERVERNAME"
    
    if [[ "$SERVERNAME" =~ .*\..* ]]; then
        echo "Adding certificate for $SERVERNAME"
        echo -n | openssl s_client -connect $SERVERNAME:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee /tmp/$SERVERNAME.cert
        sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" /tmp/$SERVERNAME.cert
    else
        echo "Usage: $0 www.site.name"
        echo "http:// and such will be stripped automatically"
    fi
  2. (シェルから)スクリプトを実行可能にします。

    chmod +x whitelist_ssl_certificate.ssh
  3. 必要なドメインのスクリプトを実行します(URL全体をコピー/貼り付けするだけです):

    ./whitelist_ssl_certificate.ssh https://your_website/whatever

1
このアプローチはOS X Mavericksで私に有効でした。上記のトップアンサーで説明されているように、エクスポートオプションはありませんでした。
Kevin Leary 14年

よく働く。httpsの前のロックはまだ消されていますが、迷惑なポップアップはもうないので問題ありません。
nalply 2014

これはMac Catalinaで私のために働いた。ありがとう!:)
Saurabh

58

UPDATED 4月2020分の23

Chromiumチームからの推奨

https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins#TOC-Testing-Powerful-Features

迅速で簡単なソリューション

:クロムは、セキュリティエラーが発生しても続行持つようにエラーページに入力することができます秘密のバイパスフレーズがあるthisisunsafe(クロームの以前のバージョンでは、型badideaでも早く、そして、危険が)。DO NOT USE THISあなたがそれを必要となぜあなたは正確に理解しない限り!

ソース:

https://chromium.googlesource.com/chromium/src/+/d8fc089b62cd4f8d907acff6fb3f5ff58f168697%5E%21/

(にwindow.atob('dGhpc2lzdW5zYWZl')解決されるメモthisisunsafe

ソースの最新バージョンは@ https://chromium.googlesource.com/chromium/src/+/refs/heads/master/components/security_interstitials/core/browser/resources/interstitial_large.jsで、window.atob関数は次の場所で実行できますJSコンソール。

Chromeチームがバイパスフレーズを変更した理由に関する背景情報(初回):

https://bugs.chromium.org/p/chromium/issues/detail?id=581189

他のすべてが失敗した場合(解決策#1)

「とにかく続行」オプションが利用できない場合、またはバイパスフレーズが機能していない場合に、1回限りの迅速な対応のために、このハックはうまく機能します。

  1. localhostこのフラグを有効にして、証明書エラーを許可します(フラグの値を変更した後、Chromeを再起動する必要があることに注意してください)。

    chrome://flags/#allow-insecure-localhost

    (そして@Chrisによる投票回答https://stackoverflow.com/a/31900210/430128

  2. 接続したいサイトがであればlocalhost完了です。それ以外の場合は、ポート8090をローカルでリッスンしbroken-remote-site.com、ポート443に接続するようにTCPトンネルをセットアップsocatし、ターミナルウィンドウで次のようにインストールして実行していることを確認します。

    socat tcp-listen:8090,reuseaddr,fork tcp:broken-remote-site.com:443

  3. 移動します。https:// localhostを:8090をブラウザで。

他のすべてが失敗した場合(解決策#2)

「他のすべてが失敗した場合(解決策#1)」と同様に、ここではngrokを使用してローカルサービスへのプロキシを構成します。TLS(有効な証明書を使用してngrokによって終了される場合)または非TLSエンドポイントを介してngrok httpトンネルにアクセスできるため、ブラウザーは無効な証明書について不平を言うことはありません。

ngrokをダウンロードしてインストールし、次のように公開しngrok.ioます。

ngrok http https://localhost

ngrokが起動し、接続可能なホスト名を提供します。すべてのリクエストは、ローカルマシンにトンネリングされます。


10
quora.com/…に記載されているように、別のオプションは、ページの任意の場所をクリックして「badidea」と書き込むことです
smihael

サービスワーカーのためにhttpsでlocalhostを使用しようとする人は誰でも、
Chrome

これでも、証明書は無効として扱われ、パスワード管理は機能しなくなります
Ray Foss

34

テスト環境の場合

--ignore-certificate-errorsChromeの起動時にコマンドラインパラメータとして使用できます(Ubuntuのバージョン28.0.1500.52で動作)。

これにより、エラーが無視され、警告なしに接続されます。既にChromeのバージョンを実行している場合は、コマンドラインから再起動する前にこれを閉じる必要があります。そうしないと、新しいウィンドウが開きますが、パラメーターは無視されます。

テストサーバーには有効な証明書がないため、デバッグ時にIntellijをこのようにChromeを起動するように構成します。

証明書チェックは重要なセキュリティ機能であるため、このような通常のブラウジングはお勧めしませんが、これは一部にとって役立つ場合があります。


5
Windows 8でうまくいきました!クロムショートカットを右クリック> [プロパティ]> [ターゲット]フィールドを次のように変更しました(「--ignore-certificate-errors」は引用符の後にスペースを入れて追加する必要があります): "C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe "--ignore-certificate-errors
-t

1
これは質問の答えにはならず、危険です。問題は、Chromeに自己署名サーバー証明書を信頼させる方法でした。警告やエラーを無視する方法ではありません。
jww 2015年

1
これは、Windows 7(64ビット)を搭載したChrome(63.0.3239.108)で私のために機能した唯一のソリューションです。セキュリティに関しては、ローカル仮想マシンで開発するときにのみ起動する特別なアイコンをデスクトップに作成しました。自己署名ローカル証明書のインポート、chrome:// flagsとHSTSドメインの調整は役に立ちませんでした。Chromeは、古いセキュリティの優れたボタン「セキュリティ例外を追加」を間違いなく保持する必要があります。これにより、役に立たない設定で苦労する2時間を節約できます。
lubosdz 2018年

このチュートリアルは魅力的でした!youtube.com/watch?v=qoS4bLmstlk
Jonathan Martins

20

誰かが指摘したように、ブラウザウィンドウだけでなく、Chromeのすべてを再起動する必要があります。これを行う最速の方法は、タブを開いて...

chrome://restart


おい!これが私にとってそれを修正したものであることを指摘したかっただけです。私はトラストストアにカスタムCAを追加していましたが、常にそのように機能していました。私はFirefoxを試してみましたが、Chromeではなく完璧に動作しました。最後に言ったのは、Chromeを完全に再起動する必要があるためです。これらのバックグラウンドプロセスがまだ実行されている限り、Chromeは同じトラストストアを使用し続ける可能性があります。
ホセCifuentes

20

WINDOWS JUN / 2017 Windows Server 2012

私は@Brad Parksの回答に従いました。Windowsでは、信頼されたルート認証局ストアにrootCA.pemをインポートする必要があります。

次の手順を実行しました。

openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -newkey rsa:4096 -sha256 -days 1024 -out rootCA.pem
openssl req -new -newkey rsa:4096 -sha256 -nodes -keyout device.key -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 2000 -sha256 -extfile v3.ext

ここで、v3.extは次のとおりです。

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

[alt_names]
DNS.1 = localhost
IP.1 = 192.168.0.2
IP.2 = 127.0.0.1

次に、私の場合は自己ホスト型のWebアプリがあるので、証明書をIPアドレスとポートにバインドする必要があります。証明書は秘密鍵情報を含むMYストアにあるはずなので、pfx形式にエクスポートしました。

openssl pkcs12 -export -out device.pfx -inkey device.key -in device.crt

mmcコンソール(ファイル/スナップインの追加/削除/証明書/追加/コンピューターアカウント/ LocalComputer / OK)を使用して、個人用ストアにpfxファイルをインポートしました。

後でこのコマンドを使用して証明書をバインドしました(HttpConfigツールを使用することもできます)。

netsh http add sslcert ipport=0.0.0.0:12345 certhash=b02de34cfe609bf14efd5c2b9be72a6cb6d6fe54 appid={BAD76723-BF4D-497F-A8FE-F0E28D3052F4}

certhash =証明書のサンプリント

appid = GUID(選択)

最初に、信頼されたルート認証局の証明書「device.crt」をさまざまな方法でインポートしようとしましたが、それでも同じエラーが発生します。

ここに画像の説明を入力してください

しかし、ドメインの証明書ではなく、ルート証明機関の証明書をインポートする必要があることに気付きました。そのため、mmcコンソールを使用しました(ファイル/スナップイン/証明書の追加/証明書/追加/コンピューターアカウント/ LocalComputer / OK)。信頼されたルート証明機関ストアにrootCA.pemをインポートしました。

ここに画像の説明を入力してください

Chromeを再起動すると、動作します。

localhostの場合:

ここに画像の説明を入力してください

またはIPアドレス:

ここに画像の説明を入力してください

私が達成できなかった唯一のことは、それが時代遅れの暗号(絵の上の赤い四角)を持っているということです。この点で助かります。

makecertでは、SAN情報を追加することはできません。New-SelfSignedCertificate(Powershell)を使用すると、SAN情報を追加でき、それも機能します。


2
重要:管理者としてOpenSSLを実行します。
ホセA

これがベストアンサーであり、Chromeでも引き続き機能します[71.0.3578.98] 2019
現在

うわー、うまくいきました(Chrome 75-2019年7月)。netsh httpWindowsサーバーを使用しない限り、この手順は必要ありません。また、certファイルをpfxにエクスポートする必要はないと思います。

動作確認済み:Chrome
81-

15
  1. 信頼されたルートCAストアにCA証明書を追加します。

  2. Chromeに移動して、このフラグを有効にしてください!

chrome://flags/#allow-insecure-localhost

最後に、*。meドメインまたは* .comや* .netなどの有効なドメインを使用して、ホストファイルで管理します。私のローカル開発者の場合、私は* .meまたは* .comを使用して、ホストファイルを次のように維持します。

  1. ホストに追加します。C:/ windows / system32 / drivers / etc / hosts

    127.0.0.1 nextwebapp.me

注:これを行うときにブラウザーが既に開かれている場合、エラーは引き続き表示されます。そのため、ブラウザを閉じて、もう一度やり直してください。さらに良いことに、シークレットモードにするか、新しいセッションを開始してすぐに有効にします。



Windowsのホストファイルにローカル開発、つまり* .meサイトで許可されているドメイン名のみを追加しました。証明書を追加しますが、証明書が正しくインストールされていても、ホストがSSL検証の検証に失敗することがあります。その場合、新しいセッションを作成します。これらのヒントだけを追加しました。私はこのうさぎの穴を深すぎたので、誰かがそれが必要な場合に何をすべきかを確実に知ってもらいたかった。
アリエル

14

サイトが提供されているアドレスは証明書と同じですか?Chromeと自己署名証明書についても同じ問題がありましたが、最終的には、証明書のドメイン名の検証については非常にうるさいことがわかりました(当然のことながら)。

Chromeには独自の証明書ストアがなく、Windows独自の証明書ストアを使用しています。ただし、Chromeにはストアに証明書をインポートする方法がないため、代わりにIEを介して証明書を追加する必要があります。

Google Chromeへの証明書のインストール

Internet Explorerへの証明書のインストール

また、自己署名証明書を作成するためのいくつかの異なるアプローチについても、これを見てください(あなたが言及していないように、IISを使用していると想定しています)。

IIS 7で自己署名証明書を作成する方法


問題のサイトはlocalhostで、証明書のCNは「localhost」です。はい、Windowsの証明書ストアに証明書をインストールしました。IEとChromeの両方が証明書について不満を述べています。
pjohansson 2011

IISとApacheのどちらを使用しているかはわかりませんが、IIS用の自己署名証明書を作成するときに追加したリンクを確認してください。
Ira Rainey

証明書部分のドメイン名の検証について非常にうるさいので、誰かがそれについてもっと知っていますか?Android 9でルート証明書を使用すると問題が発生します(2019年です)。これは、Google Chromeによって安全ではないと非難されています。FFとデスクトップで問題ありません。
BairDev

7

私はbjnordが提案したものを使用するプロセスをダウンしました: Google Chrome、Mac OS X、自己署名SSL証明書

ブログに示されているものは機能しませんでした。

ただし、ブログへのコメントの1つは金色でした。

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain site.crt

証明書ファイルを取得する方法についてブログをフォローする必要があります。その後、上記のコマンドを使用できます。


7

Linux上のChromiumでSSL証明書を管理するためのGUIが適切に機能しませんでした。しかし、彼らのドキュメントは正しい答えを与えました。トリックは、自己署名SSL証明書をインポートする以下のコマンドを実行することでした。との名前を更新して<certificate-nickname>からcertificate-filename.cer、chromium / chromeを再起動します。

ドキュメントから:

Linuxでは、ChromiumはNSS共有DBを使用します。組み込みマネージャーが機能しない場合は、NSSコマンドラインツールを使用して証明書を構成できます。

ツールを入手する

  • Debian / Ubuntu: sudo apt-get install libnss3-tools

  • Fedora: su -c "yum install nss-tools"

  • Gentoo:(su -c "echo 'dev-libs/nss utils' >> /etc/portage/package.use && emerge dev-libs/nss"以下のように、nss接頭辞を付けてすべてのコマンドを起動する必要がありますnsscertutil。例:)sudo zypper install mozilla-nss-tools

自己署名サーバー証明書を信頼するには、次を使用する必要があります

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n <certificate-nickname> -i certificate-filename.cer

すべての証明書を一覧表示する

certutil -d sql:$HOME/.pki/nssdb -L

TRUSTARGSは、コンマで区切られた0個以上のアルファベット文字の3つの文字列です。これらは、証明書がSSL、電子メール、およびオブジェクト署名に対してどのように信頼されるかを定義し、certutil docsまたは信頼フラグに関するMeenaのブログ投稿で説明されています。

SSLクライアント認証用の個人証明書と秘密鍵を追加する次のコマンドを使用します。

pk12util -d sql:$HOME/.pki/nssdb -i PKCS12_file.p12

PKCS#12ファイルに保存されている個人証明書と秘密鍵をインポートします。個人証明書のTRUSTARGSは「u、u、u」に設定されます。

証明書を削除する certutil -d sql:$HOME/.pki/nssdb -D -n <certificate nickname>

抜粋: https : //chromium.googlesource.com/chromium/src/+/HEAD/docs/linux_cert_management.md


7

Filippo Valsordaは、多くのトラストストアmkcertに対してこれを行うためのクロスプラットフォームツールを作成しました。私は彼がこの質問に非常に多くの答えがあるのと同じ理由でそれを書いたと思います:信頼されたルートCAによって署名されたSubjectAltName証明書に対して「正しい」ことをするのは苦痛です。

mkcert は、Windows、macOS、およびいくつかのLinuxフレーバーの主要なパッケージ管理システムに含まれています。

mkcert

mkcertローカルで信頼された開発証明書を作成するためのシンプルなツールです。設定は必要ありません。

$ mkcert -install
Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊

$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨

Created a new certificate valid for the following names 📜
 - "example.com"
 - "*.example.com"
 - "example.test"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅

6

URLの横にある小さな取り消し線の付いたロックアイコンをクリックすると、次のようなボックスが表示されます。

ここに画像の説明を入力してください

[ 証明書情報]リンクをクリックすると、次のダイアログが表示されます。

ここに画像の説明を入力してください

どの証明書ストアが正しいかがわかります。これは、信頼されたルート証明機関ストアです。

他の回答で概説されている方法のいずれかを使用して、そのストアに証明書を追加するか、次のいずれかを使用できます。

certutil -addstore -user "ROOT" cert.pem
  • ROOT 前述の証明書ストアの内部名です。
  • cert.pem 自己署名証明書の名前です。

1
certutil -addstore -user "ROOT" cert.pemはWindowsですか?
Pacerier 2015年

1
@Pacerier:正解です。Windows用です。
Der Hochstapler、2015年

あなたはそれを持っていますがTrusted Root Certification Authorities、それでも問題は残っています:imgur.com/a/mjlglVz imgur.com/a/n8BFH5S Windows 10、chrome 78
playingHard

6

これでうまくいきました。参照:http : //www.robpeck.com/2010/10/google-chrome-mac-os-x-and-self-signed-ssl-certificates/#.Vcy8_ZNVhBc

アドレスバーで、Xの小さな鍵をクリックします。これにより、小さな情報画面が表示されます。「証明書情報」と書かれたボタンをクリックします。

画像をクリックしてデスクトップにドラッグします。小さな証明書のようです。

それをダブルクリックします。これにより、キーチェーンアクセスユーティリティが起動します。ロックを解除するにはパスワードを入力してください。

証明書は、ログインキーチェーンではなく、システムキーチェーンに追加してください。これは何もしないようですが、[常に信頼する]をクリックします。

追加されたら、ダブルクリックします。もう一度認証する必要があるかもしれません。

「信頼」セクションを展開します。

「この証明書を使用する場合」を「常に信頼する」に設定


6

私はすべてを試し、何が機能するかを試しました。インポートするときに、正しいカテゴリ、つまり信頼されたルート認証局を選択します。

(申し訳ありませんが、ドイツ語ですが、画像に従ってください)

ここに画像の説明を入力してください


6
mkdir CA
openssl genrsa -aes256 -out CA/rootCA.key 4096
openssl req -x509 -new -nodes -key CA/rootCA.key -sha256 -days 1024 -out CA/rootCA.crt

openssl req -new -nodes -keyout example.com.key -out domain.csr -days 3650 -subj "/C=US/L=Some/O=Acme, Inc./CN=example.com"
openssl x509 -req -days 3650 -sha256 -in domain.csr -CA CA/rootCA.crt -CAkey CA/rootCA.key -CAcreateserial -out example.com.crt -extensions v3_ca -extfile <(
cat <<-EOF
[ v3_ca ]
subjectAltName = DNS:example.com
EOF
)

1
これは私にとってChrome 77で機能した唯一のものです。私の日を節約していただきありがとうございます。
ロメイン、

生成されたファイルをどのように使用しますか?ドメインの.crtファイルと.keyファイルの使用方法を理解していますが、.csrファイルの用途は何ですか?そして、どのようにrootCA。*ファイルを使用しますか?あなたの答えを広げてください...
Chiwda

どうもありがとうございました。
dodancs

6

この投稿にはすでに応答が殺到していますが、Chromeで有効な自己署名TLS証明書生成しやすくするために、他のいくつかの回答に基づいてbashスクリプトを作成しました(テスト済み)。それが他の人に役立つことを願っています。Chrome 65.x

自己署名tls bashスクリプト

証明書をインストール(および信頼)したら、Chromeを再起動することを忘れないでください(chrome://restart


チェックアウトする価値のある別のツールは、CloudFlareのcfsslツールキットです。

cfssl


6

Chrome v58以降が信頼するWindowsで自己署名証明書を作成するには、管理者特権でPowershellを起動し、次のように入力します。

New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Subject "fruity.local" -DnsName "fruity.local", "*.fruity.local" -FriendlyName "FruityCert" -NotAfter (Get-Date).AddYears(10)
#notes: 
#    -subject "*.fruity.local" = Sets the string subject name to the wildcard *.fruity.local
#    -DnsName "fruity.local", "*.fruity.local"
#         ^ Sets the subject alternative name to fruity.local, *.fruity.local. (Required by Chrome v58 and later)
#    -NotAfter (Get-Date).AddYears(10) = make the certificate last 10 years. Note: only works from Windows Server 2016 / Windows 10 onwards!!

これを行うと、証明書はPersonal \ Certificatesストアの下のローカルコンピュータの証明書に保存されます。

この証明書を信頼されたルート証明機関\証明書ストアにコピーします。

これを行う1つの方法:Windowsのスタートボタンをクリックし、と入力しcertlm.mscます。次に、以下のスクリーンショットに従って、新しく作成した証明書をTrusted Root Certification Authorities \ Certificatesストアにドラッグアンドドロップします。 ここに画像の説明を入力してください


Macでこれを行う方法 感謝:)
Artanis Zeratul

@mpowrie。これを生成したら、Apache Webサーバーにどのようにリンクしますか?localhostサーバー上。
Ifedi Okonkwo

Ifedi Okonkwo:申し訳ありませんが、Apacheウェブサーバーではわかりませんが、IISでタイプhttpsのサイトバインディングを追加し、完全修飾ホスト名を含めて、SSL証明書を選択します。
mpowrie

これは魅力のように機能します。その証明書をバインディングとして割り当てる場合は、さらに1つの手順を実行する必要があると言います。証明書は、[個人]> [証明書]にも含まれている必要があります。何らかの理由でドラッグアンドドロップすると、実際には個人証明書から削除され、信頼済み証明書に配置されました。必ずコピーして貼り付けてください。
StephenPAdams

5

mac / osxでのSSL / HTTPS localhostの修正:

  1. https localhost環境を開こうとするときに、アドレスバーの十字の付いた赤い錠をクリックします。証明書に関するいくつかの情報を示すウィンドウが開きます。

  2. 「詳細」情報ウィンドウをクリックし ます

  3. Chromeセキュリティツールが[セキュリティ]タブで開きます。[ 証明書の表示]をクリックします証明書の画像
  4. それを「システム」キーチェーンに追加します(デフォルトで選択されている「ログイン」キーチェーンではありません)。

  5. キーチェーンを(もう一度)開き、証明書を見つけます。それをクリックして、すべてを「信頼」してください。

  6. Chromeを再起動すると動作するはずです。


愚かなグラフィカルインターフェースはMacoOS 10.14.5で証明書を受け入れないかもしれませんが、でそれをインポートすることができますsecurity import filename.pem -k ~/Library/Keychains/login.keychain。グラフィカルではエラー-25294が発生します
Boatcoder

5

同じ問題が発生していました:証明書をWindowsの信頼されたルート認証局ストアにインストールしましたが、それでもChromeは証明書を拒否し、エラーが発生しましたERR_CERT_COMMON_NAME_INVALID。証明書がストアに正しくインストールされていない場合、エラーはであることに注意してくださいERR_CERT_AUTHORITY_INVALID

エラーの名前、このコメント、およびこの質問からわかるように、問題は証明書の宣言されたドメイン名にありました。証明書の生成中に「共通名」の入力を求めlocalhostられたら、サイトへのアクセスに使用しているドメイン名(私の場合)を入力する必要がありました。を使用chrome://restartしてChromeを再起動し、ついにこの新しい証明書に満足しました。


私はまた、ローカルホストを使用していますが、クロムはそれについて幸せではないimgur.com/a/mjlglVzのWindows 10、クロム78私はここからの指示に従っ:stackoverflow.com/a/44398368/4983983私は経由でページにアクセスするローカルホスト
tryingHard

一般的な名前「localhost」の使用はほぼ機能しましたが、ついにオプション付きのchromeを起動したときにも機能しました--allow-insecure-localhost
有害な

5

Chrome 58以降、macOSで SANがないために証明書エラーが発生し始めました。ここでは、アドレスバーに緑色のロックを再度取得する方法を示します。

  1. 次のコマンドで新しい証明書を生成します。

    openssl req \
      -newkey rsa:2048 \
      -x509 \
      -nodes \
      -keyout server.key \
      -new \
      -out server.crt \
      -subj /CN=*.domain.dev \
      -reqexts SAN \
      -extensions SAN \
      -config <(cat /System/Library/OpenSSL/openssl.cnf \
          <(printf '[SAN]\nsubjectAltName=DNS:*.domain.dev')) \
      -sha256 \
      -days 720
  2. server.crtKeyChainにインポートし、証明書をダブルクリックして、[ 信頼 ]を展開し、[ 常に信頼する]を選択します

Google Chromeでページhttps://domain.devを更新すると、緑色のロックが戻ります。


これはサブドメインで機能しapi.domain.devますが、まだ警告ページがありますdomain.devThis server could not prove that it is domain.dev; its security certificate is from *.domain.dev. This may be caused by a misconfiguration or an attacker intercepting your connection.アイデアはありますか?
フランソワ・ロマン・

5

MacOS上のChromeで証明書を準備した場合:

  • Chromeを終了します(cmd+ Q)。
  • キーチェーンアクセスアプリを起動し、「証明書」カテゴリを開きます。
  • 証明書ファイルをキーチェーンアクセスウィンドウにドラッグし、証明書ファイルのパスワードを入力します。
  • 証明書をダブルクリックして、「信頼」リストを展開します。
    • 「この証明書を使用する場合」の行で、「常に信頼する」を選択します。
    • これを閉じてパスワードを入力してください。
  • Chromeを起動し、すべてのキャッシュをクリアします。
  • すべて問題ないことを確認します。

5

この方法で安全でないlocalhostが正常に機能するようにするchrome:// flags /#allow-insecure-localhost

xxx.localhostへの開発ホスト名を作成する必要があるだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.