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

Arch Linux WebサーバーにPerl 5.28をインストールする方法

Arch Linux WebサーバーにPerl 5.28をインストールする方法

前提条件最新のArch Linuxを実行するVultrサーバー(この記事を参照)。実行中のWebサーバー(ApacheまたはNginx Sudoアクセス):コマンドが必要

Arch LinuxにPostgreSQL 11.1をインストールする方法

Arch LinuxにPostgreSQL 11.1をインストールする方法

前提条件最新のArch Linuxを実行しているVultrサーバー(この記事を参照してください。)Sudoアクセス。rootとして実行する必要のあるコマンドには、先頭に#が付いています。

Arch LinuxでMumble Serverをセットアップする

Arch LinuxでMumble Serverをセットアップする

このチュートリアルでは、Arch LinuxでMumbleサーバー(Murmur)をセットアップする方法について説明します。このチュートリアルで行われることはすべて、rootユーザーとして行われます。インストールと

Arch LinuxでのDevtoolsの使用

Arch LinuxでのDevtoolsの使用

Devtoolsパッケージは、もともとは信頼されたユーザーが公式リポジトリ用のパッケージを適切に作成するために作成されました。ただし、一般ユーザーでも使用可能

Arch LinuxでTeam Fortress 2サーバーをセットアップする

Arch LinuxでTeam Fortress 2サーバーをセットアップする

このチュートリアルでは、Arch LinuxでTeam Fortress 2サーバーをセットアップする方法について説明します。sudoアクセスを持つ非rootユーザーアカウントでログインしていると思います

Arch LinuxでMakepkgを使用する

Arch LinuxでMakepkgを使用する

makepkgを直接使用すると、システムを多少汚染します。base-develパッケージグループをインストールする必要があります。このように、デフォルトでは、依存関係はonlが必要です

Arch LinuxウェブサーバーにPython 3.7をインストールする方法

Arch LinuxウェブサーバーにPython 3.7をインストールする方法

前提条件最新のArch Linuxを実行するVultrサーバー(この記事を参照)。実行中のWebサーバー(ApacheまたはNginx Sudoアクセス):コマンドが必要

Arch LinuxでのSpigotサーバーのセットアップ

Arch LinuxでのSpigotサーバーのセットアップ

このチュートリアルでは、Arch LinuxでSpigotを使用してMinecraftサーバーをセットアップする方法について説明します。このチュートリアルでは、あなたが通常のユーザー(root以外)であり、

カウンターストライクのセットアップ:Arch LinuxでのGlobal Offensive(CSGO)サーバー

カウンターストライクのセットアップ:Arch LinuxでのGlobal Offensive(CSGO)サーバー

このチュートリアルでは、Arch LinuxでCounter-Strike:Global Offensiveサーバーをセットアップする方法について説明します。このチュートリアルは、標準的な使用法でログインしたことを前提としています

Arch LinuxにMariaDB 10.3またはMySQL 8.0をインストールする方法

Arch LinuxにMariaDB 10.3またはMySQL 8.0をインストールする方法

前提条件最新のArch Linuxを実行しているVultrサーバー(この記事を参照してください。)Sudoアクセス:rootとして実行する必要のあるコマンドには、先頭に#が付いています。

Arch LinuxにMongoDB 4.0をインストールする方法

Arch LinuxにMongoDB 4.0をインストールする方法

前提条件最新のArch Linuxを実行しているVultrサーバー(この記事を参照)Sudoアクセス:rootとして実行する必要のあるコマンドには、先頭に#が付いています。

VultrサーバーへのArch Linuxのインストール

VultrサーバーへのArch Linuxのインストール

Vultrは、実行できるようにする優れたテンプレートに加えて、独自のカスタムイメージを使用できるようにする素晴らしい機能を提供します

BtrfsスナップショットでArch Linuxをインストールする

BtrfsスナップショットでArch Linuxをインストールする

序文Arch Linuxは、最先端のテクノロジーと柔軟な構成で有名な汎用ディストリビューションです。Btrfsスナップショットを使用すると、

Arch LinuxウェブサーバーにPHP 7.3をインストールする方法

Arch LinuxウェブサーバーにPHP 7.3をインストールする方法

前提条件最新のArch Linuxを実行しているVultrサーバー(この記事を参照)。ApacheまたはNginx Sudoアクセスのいずれかを実行しているWebサーバー。コマンドが必要

Arch LinuxにNginx 1.14をインストールする方法

Arch LinuxにNginx 1.14をインストールする方法

前提条件最新のArch Linuxを実行しているVultrサーバー(この記事を参照してください。)Sudoアクセス。rootとして実行する必要のあるコマンドには、先頭に#が付いています。Th

Arch Linuxでのパッケージのビルド(AURを含む)

Arch Linuxでのパッケージのビルド(AURを含む)

Arch Linuxでは、公式リポジトリはコア、エクストラ、コミュニティです。これらのパッケージはすでにコンパイルされており、pacmanによってインストールされます。前方へ

Arch LinuxにApache 2.4をインストールする方法

Arch LinuxにApache 2.4をインストールする方法

前提条件最新のArch Linuxを実行しているVultrサーバー。詳細については、このガイドを参照してください。Sudoアクセス。root arとして実行する必要があるコマンド

Vultrサーバーへの2019 Arch Linuxのインストール

Vultrサーバーへの2019 Arch Linuxのインストール

はじめにArch Linuxは、人気のあるディストリビューションよりも小さいながらも強力です。その哲学はかなり異なり、利点と

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

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

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

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、