Arch LinuxウェブサーバーでHTTPSを使用する方法

前提条件

  • 最新のArch Linuxを実行するVultrサーバー(この記事を参照してください。)
  • ApacheまたはNginxの実行中のWebサーバー
  • Sudoアクセス
    • rootとして実行する必要のあるコマンドには、接頭辞として#、および通常のユーザーとしてによって実行できるコマンドの先頭に付きます$。rootとしてコマンドを実行するための推奨される方法は、通常のユーザーとして、各コマンドの前にを付けることsudoです。
  • テキストエディターをインストールし、vi、vim、nano、emacs、またはその他の類似エディターなどのテキストエディターに慣れている。

HTTPSによる安全な配信

HTTPSを介してコンテンツを提供する場合、非常に強力な暗号化を使用できるため、ユーザーとWebサーバー間のトラフィックを傍受するユーザーがコンテンツを読み取ることはできません。トラフィック自体を暗号化するだけでなく、アクセスされるURLも暗号化するため、情報が公開される可能��があります。しばらくの間、GoogleはHTTPS Everywhereイニシアチブの一部として、ページがHTTPSを使用しているかどうかに基づいて検索ランキングを部分的に決定してきました。

DNSルックアップは接続されているドメイン名を公開しますが、そのプロセス中にURL全体は公開されません。

SSL / TLS証明書を取得する

技術的には、TLSはHTTPS証明書のSSLを置き換えましたが、ほとんどの場所では、より一般的な用語であるSSL証明書によってTLS証明書の呼び出しが続けられました。一般的な使用法に従って、このガイドは同じことを行います。

HTTPSを使用するには、Webサーバーが.keyプライベートに使用するためのプライベートキー()と.crt、パブリックキーを含むパブリックに共有するための証明書()が必要です。証明書に署名する必要があります。自分で署名することはできますが、最新のブラウザは署名者を認識しないと文句を言うでしょう。たとえば、Chromeでは次のように表示されますYour connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID。プライベートグループのみがWebサイトを使用する場合は、ブラウザで続行できるため、これで問題ありません。たとえば、Chromeでは、[詳細設定]をクリックし、次に[続行...(安全でない)]をクリックします。それでも「安全ではありません」と表示され、「https」は取り除かれます。

このプロセスでは、国、都道府県、市区町村、組織、組織単位、一般名、および電子メールアドレスが要求されます。これらはすべて、HTTPS経由でサイトに接続している誰のブラウザからもアクセスできます。

また、仮想ホスト証明書を提供する場合は、以下に異なるファイル名を指定し、仮想ホスト構成でそれらを指す必要があることに注意してください。

Webサーバーの適切なディレクトリに移動します。

Apacheをインストールした場合:

$ cd /etc/httpd/conf

Nginxをインストールした場合:

$ cd /etc/nginx

適切なディレクトリに移動したら、秘密鍵(server.key)と自己署名証明書(server.crt)を生成します。

# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825

読み取り専用権限を設定し、秘密鍵のみをrootが読み取れるようにします。

# chmod 400 server.key
# chmod 444 server.crt

または、信頼できる認証局によって署名された証明書を取得することもできます。さまざまな会社(認証局)に支払い、証明書に署名してもらうことができます。認証局を検討する場合、どのブラウザーとどのバージョンがそれらを認識するかを調べることが重要になる場合があります。一部の新しい認証局は、古いバージョンのブラウザでは自己署名証明書よりも公式として認識されない場合があります。

通常、パブリックIPアドレスだけでなく、ドメイン名も必要です。一部の認証局は、パブリックIPアドレスに証明書を発行できますが、ほとんど行われません。

多くのプロバイダーが30日間の無料試用版を提供しています。最初に試してみることをお勧めします。これにより、料金を支払う前にプロセスが機能することを確認できます。価格は、その種類と、複数のドメインやサブドメインなどのオプションに応じて、年間数ドルから数百ドルまでさまざまです。標準の証明書は、証明書を取得した人がドメインを変更できることを署名機関が確認したことを示すだけです。Extended Validation証明書は、署名機関が要求者を審査するためにある程度の注意を払ったことも示し、最新のブラウザでは、URL内またはURLの近くに緑色のバーを表示します。ドメインに変更を加えることができることを確認するとき、一部の署名機関は、ドメイン名の重要なサウンドアドレスで電子メールを受信するように要求します。[email protected]。多くは、単一のホスティングディレクトリ構成のために/srv/http/.well-known/pki-validation/、Apacheまたは/usr/share/nginx/html/.well-known/pki-validation/Nginxにファイルを配置するなど、サーバーに配置するファイルを提供するなど、代替検証を提供します。または、ドメインのDNSレコードで提供されるCNAMEエントリを一時的に作成します。

選択する署名機関は手順が少し異なる場合がありますが、ほとんどは次の手順を受け入れます。

適切なディレクトリで、秘密鍵(server.key)を生成します。

# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key

rootのみが秘密鍵を読み取り専用に設定します。

# chmod 400 server.key

証明書署名要求を生成します(server.csr)。が要求されたときにドメイン名をCommon Name入力する必要があります。チャレンジパスワードは空白のままにすることができます。

# openssl req -new -sha256 -key server.key -out server.csr

証明書署名要求を読み取り専用に設定します(ルートのみ)。

# chmod 400 server.csr

証明書署名要求の内容を表示します。この情報はbase64でエンコードされているため、ランダムな文字のようになります。

# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----

署名機関のプロセスを実行し、CSRに貼り付けるよう要求されたら、このファイル全体をコピーして、-----行を含めて貼り付けます。選択した署名機関と証明書の種類によっては、署名された証明書がすぐに提供される場合と、数日かかる場合があります。署名された証明書が提供されたら、それを(-----BEGIN CERTIFICATE-----および-----END CERTIFICATE-----行を含めて)という名前のファイルにコピーserver.crtし、Webサーバーの上記の適切なディレクトリに置き、読み取り専用に設定します。

# chmod 444 server.crt

秘密キーと証明書を使用するようにWebサーバーを構成する

ファイアウォールを使用している場合は、ポートへの着信TCPトラフィックを有効にする必要があります443

Apacheの場合

/etc/httpd/conf/httpd.conf次の行を編集してコメントを外します。

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf

仮想ホストを使用している場合は、上記の変更を/etc/httpd/conf/httpd.conf行うと、すべてのホストで同じ証明書が使用されます。各ホストに独自の証明書を与えて、証明書がドメイン名と一致しないというブラウザの不満を回避するには、それぞれの構成ファイルを編集/etc/httpd/conf/vhosts/して、独自の証明書と秘密鍵を指すようにする必要があります。

  • に変更<VirtualHost *:80><VirtualHost *:80 *:443>ます。
  • VirtualHostセクション内に次を追加します。

    SSLEngine on
    SSLCertificateFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.crt"
    SSLCertificateKeyFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.key"
    

Apacheを再起動します。

# systemctl restart httpd

Nginxの場合

編集/etc/nginx/nginx.confして下部近くで、HTTPS serverセクションのコメントを外し、行を次のように変更します。

ssl_certificate      server.crt;
ssl_certificate_key  server.key;
root                /usr/share/nginx/html;

仮想ホストを使用している場合は、上記の変更を/etc/nginx/nginx.conf行うと、すべてのホストがその場所に送信されます。各ホストに独自の証明書を与えるには、それぞれの構成ファイルを編集/etc/nginx/sites-enabled/して、独自の証明書と秘密鍵を指す追加のサーバーブロックを設定する必要があります。

server {
    listen 443 ssl;
    server_name YOUR-DOMAIN-NAME.com;

    ssl_certificate      YOUR-DOMAIN-NAME.com.crt;
    ssl_certificate_key  YOUR-DOMAIN-NAME.com.key;

    ssl_session_cache   shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
        index  index.html index.htm;
    }
}

Nginxを再起動します。

# systemctl restart nginx


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。