SSL警告なしでHTTPS経由でローカル開発環境にアクセスできるようにする方法?
開発者は、複数のプロジェクト、クライアント、およびWebアプリケーションで作業する必要がある場合があります。 Webアプリケーション開発の前提条件の1つは、開発フェーズ中にブラウザーでローカルにWebサイトをテストすることです。開発中のアプリケーションが、実稼働環境でSSL / TLS証明書で保護される可能性が非常に高い.
同意する?
サードパーティのAPIを利用して特定の機能をテストする必要があり、オリジンがhttps://である必要がある場合はどうでしょうか?
自己署名証明書と言っても問題ありません。しかし、自己署名証明書を実装したサイトにアクセスしてみましたか? Chromeやその他のブラウザでは引き続き証明書の警告が表示されます.
見えますか 安全ではない バッジ?
良くない?
開発環境で有効なSSL証明書を取得するための最良の方法は、独自のCAとその可能なCAを管理することです。 mkcert. 次のローカル開発Webアドレスで有効な証明書を取得できるように実装するのは簡単.
- example.com
- * .example.com
- example.test
- ローカルホスト
- 127.0.0.1
- :: 1
mkcertは、macOS、Windows、CentOS、Ubuntu、その他のUNIXベースのOSに実装できます。次の例はUbuntuからのものです.
まず、証明書データベースを管理するためのcertutilを備えたネットワークセキュリティサービスツールをインストールしましょう.
apt-get update
apt-get install libnss3-tools
brewがサーバーにインストールされていることを確認する必要がある場合もあります。インストールされていない場合は、次のコマンドを使用してインストールします.
apt-get install linuxbrew-wrapper
最後に、brewを使用してmkcertをインストールします.
brew install mkcert
注:brewを使用してインストールするには、rootであってはなりません。 /home/$USER/.linuxbrew/bin/mkcertにインストールされます
$ USERは、インストールに使用したユーザー名です。
ここで、ローカルCAをシステムトラストストアにインストールするときがきました。.
[メール保護]:〜/ mkcert#/home/chandan/.linuxbrew/bin/mkcert -install
でのローカルCAの使用 "/root/.local/share/mkcert" ✨
ローカルCAがシステムトラストストアにインストールされました。 ⚡️
[メール保護]:〜/ mkcert#
次に、開発環境用の証明書を生成します。 example.comにWebサイトを配置する予定で、次のコマンドを使用して証明書とキーファイルを取得するとします。.
[メール保護]:〜/ mkcert#/home/chandan/.linuxbrew/bin/mkcert example.com
でのローカルCAの使用 "/root/.local/share/mkcert" ✨
次の名前に有効な新しい証明書を作成しました
– "example.com"
証明書は "./example.com.pem" そしてキー "./example.com-key.pem" ✅
[メール保護]:〜/ mkcert#
すごい!これで、有効な証明書とそのキーファイルをNginx、Apache、またはその他のWebサーバーで使用できるようになりました.
Apache HTTPサーバーの例を見てみましょう。 SSLモジュールと構成をまだ有効にしていない場合は有効にします。.
[メール保護]:/ etc / apache2#a2enmod ssl
sslの依存関係setenvifを検討:
モジュールsetenvifはすでに有効になっています
sslの依存関係MIMEを検討:
モジュールmimeは既に有効になっています
sslの依存関係socache_shmcbを検討します。
モジュールsocache_shmcbの有効化.
モジュールSSLを有効にする.
SSLの設定方法と自己署名証明書の作成方法については、/ usr / share / doc / apache2 / README.Debian.gzを参照してください.
新しい構成をアクティブにするには、次を実行する必要があります。
systemctl restart apache2
[メール保護]:/ etc / apache2#
提案されたように、Apacheを再起動します.
この時点で、netstatを実行すると、Apacheがセキュアポート443で開始したことがわかります。.
[メール保護]:/ etc / apache2#netstat -anlp | grep 443
tcp6 0 0 ::: 443 ::: * LISTEN 11616 / apache2
[メール保護]:/ etc / apache2#
しかし、まだ終わっていません。デフォルトの(ダミーの)証明書から始まり、それを置き換える必要があります.
viファイルを使用してdefault-ssl.confを変更し、以下をキーと証明書ファイルを生成したパスに置き換えます.
SSLCertificateFile /root/mkcert/example.com.pem
SSLCertificateKeyFile /root/mkcert/example.com-key.pem
Apacheを再起動する前に、example.comのホストファイルを操作して、インターネットファイルではなくローカルホストに解決する必要もあります。完了したら、Apache HTTPサーバーを再起動してexample.comにアクセスします–信頼できる証明書が提供されていることがわかります.
結論
これは、ローカル環境で信頼できる証明書を持つのに便利です。上記はexample.comの例にすぎませんが、localhostなどで実行できます。証明書を発行するために外部の署名者が必要な場合は、無料で取得する方法を確認してください.