SSL ( Secure Socket Layer )、およびその改良版である TLS (トランスポートソケットレイヤー )は、クライアントのWebブラウザからWebサーバーに送信されるWebトラフィックを保護するために使用されるセキュリティプロトコルです。
SSL 証明書は、クライアントのブラウザとWebサーバーの間に安全なチャネルを作成するデジタル証明書です。そうすることで、クレジットカードデータ、ログインクレデンシャル、その他の非常にプライベートな情報などの機密データが暗号化され、ハッカーがあなたの情報を盗聴したり盗んだりするのを防ぎます。
自己署名SSL証明書とは何ですか?
他のSSLとは異なり、自己署名SSL証明書 認証局によって署名および信頼されている証明書 ( CA )、それを所有する個人によって署名された証明書です。
作成は完全に無料で、ローカルでホストされているWebサーバーを暗号化する安価な方法です。ただし、次の理由により、実稼働環境では自己署名SSL証明書の使用を強くお勧めしません。
- 認証局によって署名されていないため 、自己署名SSL証明書は、続行することを決定した場合に潜在的なリスクをユーザーに警告するアラートをWebブラウザーに生成します。これらのアラートは望ましくなく、ユーザーがWebサイトにアクセスするのを思いとどまらせ、Webトラフィックの減少につながる可能性があります。これらのアラートの回避策として、組織は通常、従業員にアラートを無視して先に進むことを推奨しています。これにより、他のオンラインサイトでこれらのアラートを無視し続けることを決定する可能性のあるユーザーに危険な習慣が生まれ、フィッシングサイトの犠牲になる可能性があります。
- 自己署名証明書は、低レベルの暗号技術とハッシュを実装しているため、セキュリティレベルが低くなっています。したがって、セキュリティレベルは標準のセキュリティポリシーと同等ではない可能性があります。
- さらに、公開鍵インフラストラクチャ(PKI)機能はサポートされていません。
とはいえ、自己署名SSL証明書の使用は、 TLS / SSLを必要とするローカルマシンでサービスとアプリケーションをテストするための悪い考えではありません。 暗号化。
このガイドでは、ローカルの自己署名SSL証明書を Apacheにインストールする方法を学習します。 CentOS 8上のローカルホストWebサーバー サーバーシステム。
前提条件:
開始する前に、次の基本的な要件があることを確認してください。
- CentOS8サーバーのインスタンス。
- サーバーにインストールされているApacheWebサーバー
- / etc / hostsですでに構成および定義されているホスト名 ファイル。このガイドでは、
tecmint.local
を使用します サーバーのホスト名。
ステップ1:CentOSにMod_SSLをインストールする
1。 まず、 Apacheを確認する必要があります Webサーバーがインストールされ、実行されています。
$ sudo systemctl status httpd
期待される出力は次のとおりです。
Apacheステータスの確認
Webサーバーが実行されていない場合は、コマンドを使用して起動時にWebサーバーを起動して有効にすることができます。
$ sudo systemctl start httpd $ sudo systemctl enable httpd
ApacheWebサーバーを起動します
その後、Apacheが稼働しているかどうかを確認できます。
2。 ローカルの自己署名SSL証明書のインストールとセットアップを有効にするには、 mod_ssl パッケージが必要です。
$ sudo dnf install mod_ssl
インストールしたら、実行してインストールを確認できます。
$ sudo rpm -q mod_ssl
ModSSLのインストールを確認する
また、 OpenSSL パッケージがインストールされています( OpenSSL CentOS 8にデフォルトでインストールされます 。
$ sudo rpm -q openssl
OpenSSLのインストールを確認する
ステップ2:Apache用のローカル自己署名SSL証明書を作成する
3。 Apacheを使用 Webサーバーとすべての前提条件を確認するには、暗号化キーが保存されるディレクトリを作成する必要があります。
この例では、 / etc / ssl / privateにディレクトリを作成しました。 。
$ sudo mkdir -p /etc/ssl/private
次に、次のコマンドを使用してローカルSSL証明書キーとファイルを作成します。
$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt
コマンドのいくつかのオプションが実際に何を表しているのか見てみましょう:
- req -x509 –これは、x509証明書署名要求(CSR)を使用していることを示しています。
- -ノード –このオプションは、パスフレーズを使用したSSL証明書の暗号化をスキップするようにOpenSSLに指示します。ここでの考え方は、パスフレーズが提供されている場合には不可能な、ユーザーの介入なしにApacheがファイルを読み取れるようにすることです。
- -newkey rsa:2048 –これは、新しいキーと新しい証明書を同時に作成することを示しています。 rsa:2048の部分は、2048ビットのRSAキーを作成することを意味します。
- -キーアウト –このオプションは、作成時に生成された秘密鍵ファイルを保存する場所を指定します。
- -アウト –このオプションは、作成されたSSL証明書を配置する場所を指定します。
ApacheのローカルSSL証明書を作成する
ステップ3:ローカル自己署名SSL証明書をApacheにインストールする
4。 SSL証明書ファイルを生成したら、ApacheWebサーバーの設定を使用して証明書をインストールします。 /etc/httpd/conf.d/ssl.confを開いて編集します 構成ファイル。
$ sudo /etc/httpd/conf.d/ssl.conf
仮想ホストタグの間に次の行があることを確認してください。
<VirtualHost *:443> ServerAdmin [email protected] ServerName www.tecmint.local ServerAlias tecmint.local DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/private/tecmint.local.crt SSLCertificateKeyFile /etc/private/tecmint.local.key </VirtualHost>
ファイルを保存して終了します。変更を有効にするには、次のコマンドを使用してApacheを再起動します。
$ sudo systemctl restart httpd
5。 外部ユーザーがサーバーにアクセスするには、ポート 443を開く必要があります 図のようにファイアウォールを通過します。
$ sudo firewall-cmd --add-port=443 --zone=public --permanent $ sudo firewall-cmd --reload
ステップ3:Apacheでのローカル自己署名SSL証明書のテスト
すべての構成が整ったら、ブラウザを起動し、httpsプロトコルを使用してサーバーのIPアドレスまたはドメイン名を使用してサーバーのアドレスを参照します。
テストを合理化するために、ApacheWebサーバーでHTTPプロトコルをHTTPSにリダイレクトすることを検討してください。これは、プレーンHTTPでドメインを参照するたびに、自動的にHTTPSプロトコルにリダイレクトされるようにするためです。
したがって、サーバーのドメインまたはIPを参照します
https://domain_name/
図のように、接続が安全でないことを通知するアラートが表示されます。これはブラウザごとに異なります。ご想像のとおり、このアラートは、SSL証明書が認証局によって署名されていないことが原因です。 ブラウザはそれを登録し、証明書が信頼できないことを報告します。
SSL証明書の警告
ウェブサイトに進むには、[詳細strong>]をクリックします 上記のような’タブ:
SSL証明書の警告に進みます
次に、ブラウザに例外を追加します。
セキュリティ例外の確認
最後に、ブラウザをリロードして、サーバーにアクセスできることを確認します。ただし、SSL証明書が自己署名され、署名されていないのと同じ理由で、サイトが完全に安全ではないという警告がURLバーに表示されます。認証局。
HTTPS経由でWebサイトにアクセス
これで、 CentOS 8のApacheローカルホストWebサーバーに自己署名SSL証明書を作成してインストールできるようになることを願っています。 。
共有は思いやりがあります…Facebookで共有するTwitterで共有するLinkedinで共有するRedditで共有する