Fedora 29のNginxでTLS 1.3を有効にする方法

前書き

TLS 1.3は、RFC 8446で提案された標準として2018年に公開されたトランスポート層セキュリティ(TLS)プロトコルのバージョンです。以前のバージョンよりもセキュリティとパフォーマンスが向上しています。

このガイドでは、Fedora 29のNginx Webサーバーを使用してTLS 1.3を有効にする方法を示します。

必要条件

  • Nginxバージョン1.13.0以上。
  • OpenSSLバージョン1.1.1以降。
  • Fedora 29を実行するVultr Cloud Compute(VC2)インスタンス。
  • ドメインの有効なドメイン名と適切に構成されたA/ AAAA/ CNAMEDNSレコード。
  • 有効なTLS証明書。Let's Encryptから取得します。

あなたが始める前に

Fedoraのバージョンを確認してください。

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

アクセス権をnon-root持つ新しいユーザーアカウントを作成し、sudoそれに切り替えます。

useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe

注: ユーザー名に置き換えjohndoeてください。

タイムゾーンを設定します。

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

システムが最新であることを確認します。

sudo dnf check-upgrade || sudo dnf upgrade -y

必要なパッケージをインストールします。

sudo dnf install -y socat git

SELinuxとファイアウォールを無効にします。

sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld

Acme.shクライアントをインストールし、Let's EncryptからTLS証明書を取得します

このガイドでは、Acme.shクライアントを使用して、Let's EncryptからSSL証明書を取得します。最も慣れているクライアントを使用できます。

Acme.shをダウンロードしてインストールします

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

バージョンを確認してください。

/etc/letsencrypt/acme.sh --version
# v2.8.1

ドメインのRSAおよびECDSA証明書を取得します。

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256

注: コマンドのをドメイン名に置き換えexample.comてください。

上記のコマンドを実行すると、証明書とキーに次の場所からアクセスできます。

  • RSA: /etc/letsencrypt/example.com
  • ECC / ECDSA: /etc/letsencrypt/example.com_ecc

Nginxをインストールする

Nginxはバージョン1.13.0でTLS 1.3のサポートを追加しました。Fedora 29には、そのままTLS 1.3をサポートするNginxとOpenSSLが付属しているため、カスタムバージョンをビルドする必要はありません。

Nginxをインストールします。

sudo dnf install -y nginx

バージョンを確認してください。

nginx -v
# nginx version: nginx/1.14.2

NginxがコンパイルされたOpenSSLバージョンを確認します。

nginx -V
# built with OpenSSL 1.1.1b FIPS  26 Feb 2019

Nginxを起動して有効にします。

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Nginxを構成する

Nginxが正常にインストールされたので、サーバーでTLS 1.3の使用を開始するための適切な構成で構成する準備が整いました。

sudo vim /etc/nginx/conf.d/example.com.confコマンドを実行し、ファイルに次の構成を入力します。

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
  ssl_prefer_server_ciphers on;
}

でファイルして終了保存:+ W+ Q

ディレクティブの新しいTLSv1.3パラメーターに注意してくださいssl_protocols。このパラメーターは、NginxでTLS 1.3を有効にする場合にのみ必要です。

構成を確認してください。

sudo nginx -t

Nginxをリロードします。

sudo systemctl reload nginx.service

TLS 1.3を確認するには、ブラウザ開発ツールまたはSSL Labsサービスを使用できます。以下のスクリーンショットは、Chromeのセキュリティタブを示しています。

Fedora 29のNginxでTLS 1.3を有効にする方法

Fedora 29のNginxでTLS 1.3を有効にする方法

それで全部です。Fedora 29サーバーのNginxでTLS 1.3を正常に有効化しました。TLS 1.3の最終バージョンは2018年8月に定義されたため、この新しいテクノロジーの採用を開始する絶好の機会です。



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の未来は、日々成長を続けています。