web-dev-qa-db-ja.com

Googleで「あなたの接続はプライベートではありません」を削除する方法Chrome私の開発サイトで

私はWeb開発者であり、Ubuntu18.04を使用しています。私のセットアップはnginx、php-fpm、mysqlです。自分のマシンで複数のサイトを実行しています。 site1.local、site2.local。

次の手順に従って、SSLを使用するようにローカルサイトを構成しました: https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx -in-ubuntu-18-04

私はそれをうまく設定することができました。しかし、私の問題は、グーグルクロームで https://site1.local に行くと、「あなたの接続はプライベートではありません」という警告メッセージが表示されることです。

enter image description here

そして、手動で「詳細」と「site1.local(安全でない)に進む」をクリックする必要があります。

私の目標は、この警告メッセージを削除し、この警告なしですぐに私のサイトを表示することです。

Chrome:// flags /#allow-insecure-localhostにアクセスして、ローカルホストから読み込まれたリソースに対して無効な証明書を許可するようにchrome

私は今どうすればいい?

2
aceraven777

最近のほとんどのWebブラウザーは、HTTPSを使用せずにWebサイトにアクセスすると、常にユーザーに警告します。これらのWebサイトに自己署名SSL証明書が付属している場合は、「接続はプライベートではありません」と表示され、エラーコードは「NET :: ERR_CERT_AUTHORITY_INVALID」である必要があります。

有料SSL証明書の購入とインストール

Webサイトでこの問題を回避してユーザーエクスペリエンスを向上させるには、Name.com、NameCheap.com、Godaddy.comから購入できるようなよく知られたSSL証明書をインストールする必要があります。購入するSSL証明書の種類にもよりますが、費用は年間9ドル以上からです。しかし、1つのドメインをカバーする場合、 NameCheap.comからのこれ は素晴らしいと思います。

これがステップバイステップガイドです NameCheap.comから、NGINXにSSL証明書をインストールする方法をユーザーに説明します。見てみな!

Let's Encryptから無料のSSL証明書を取得します

これらの有料SSL証明書にお金をかけたくない場合は、Let'sEncryptから無料で試すことができます。これは、信頼できるSSL証明書をユーザーに無料で発行する組織です。

この無料のSSL証明書は、ほとんどの主要なWebブラウザーで信頼されているため、上記のエラーに直面することはもうありません。 NGINXとUbuntuにCertbotを使用してSSL証明書を無料で暗号化する方法を説明するために私が見つけた2つの記事があります。

https://devanswers.co/lets-encrypt-ssl-cert-nginx-ubuntu-18-04/

https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx.html

私はWeb開発者であり、Ubuntu18.04を使用しています。私のセットアップはnginx、php-fpm、mysqlです。 マシンで複数のサイトを実行しています。 site1.local、site2.local

このタイプのSSL証明書は、1つのドメインに対してのみ検証できることを知っておく必要があります。複数のドメインを使用する場合は、異なる構成で複数回インストールする必要があります。たとえば、Webサイトで並列実行されている2つのドメインdomain1.comdomain2.comを使用している場合は、2つのSSL証明書をインストールする必要があります。

domain1.comのSSL証明書のみをインストールする場合、domain2.comを介してWebサイトをロードすると、この「非公開」エラーが発生します。

WebサイトでSSL証明書を設定する際の問題を診断するには、または Webブラウザの「接続はプライベートではありません」エラーについて調べてください 、次の記事を確認してください。

5
Echo Diaz

ブラウザ/システムのトラストストアに含まれているcaによって署名された証明書を使用します。


編集:リクエストに応じて、openssl.cnfを編集したり、「適切な」caを設定したりすることなく、いくつかの非常にデフォルトのopenssl1.1.1設定で今日必要なデフォルト拡張を含むca署名証明書を作成する方法を追加します。

CAキーと証明書を作成します。

openssl genrsa -out ca.key 2048
openssl req -x509 -new -extensions v3_ca -key ca.key -days 3652 -out ca.crt -sha256 -subj "/C=CC/ST=Some State/L=Some City/O=Some Organisation/OU=Some Org Unit/CN=Some Chosen CA Name/[email protected]"

注1:genrsaコマンドの-aes256オプションを使用してca.keyを暗号化/パスワード保護することをお勧めします。そうしないと、盗まれたca.keyを使用して証明書に署名する可能性があります。あなたのCAは盲目的に信頼します
注2:件名にそれほど多くの情報を含める必要はないため、たとえば-subj "/CN=Some Chosen CA Name"で十分です

ca certificat(ca.crt)をブラウザまたはシステムのトラストストアに追加します。

あなたのcaによって署名された証明書を作成します。

openssl genrsa -out some-example.key 2048
openssl req -new -key some-example.key -sha256 -subj "/C=CC/ST=Some State/L=Some City/O=Some Organisation/OU=Some Org Unit/CN=*.local/[email protected]" | openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -out some-example.crt -days 730 -sha256 -extfile <(echo -e 'basicConstraints=critical,CA:FALSE\nnsCertType=server\nnsComment="OpenSSL Generated Certificate for App Tests"\nsubjectKeyIdentifier=hash\nauthorityKeyIdentifier=keyid,issuer\nkeyUsage=critical,digitalSignature,keyEncipherment\nextendedKeyUsage=serverAuth\nsubjectAltName=DNS:*.local,DNS:local,DNS:*.testdomain,DNS:testdomain')

注1:「Netscape」拡張機能(生成されたextfileにnsで始まる行)を含める必要がない場合があります。これは、nsCommentを含め、nsCertTypeの設定をヒントにする一般的なOpenSSLのデフォルトです。 configにありますが、最近では多くの証明書に設定されていません。
注2:最新のクライアントはサブジェクト名の検証にsubjectAltNameのみを使用する必要があります。つまり、証明書サブジェクトのCNは情報を提供し、すべての名前(またはIP、OIDなど)は証明書が有効である必要があります。 subjectAltNameに入ります。また、単一の名前またはアドレスに対してのみ頂点を有効にする場合でも、subjectAltNameを使用する必要があります。
注3:件名にそれほど多くの情報を含める必要はないため、たとえば、クライアントがSAN拡張子を使用して件名を確認する場合は、-subj "/CN=Some App Test Certifciate"で十分です。 。

この証明書の例は、ホスト名localtestdomainおよびすべての直接の子名(つまり、app1.local、app2.local、app3.testdomain)に有効です。
もちろん、同じca.crtとca.keyを使用している限り、証明書を作成することも、必要な単一のホスト名に対してのみ作成することもできます。これらはすべて、ca.crtを信頼するブラウザーで機能します。

0
EOhm

Chromeは自己署名証明書が好きではありません。

証明書をルート証明書としてChromeにインポートする必要があります。

0
xenoid