インターネット上の悪意ある攻撃者は、執拗かつ巧妙な手口を際限なく繰り出しています。ネットワーク侵害やデータ窃取、ランサムウェア攻撃のニュースが、ほぼ毎日のように報じられています。その被害は甚大になり得るため、Web資産とトラフィックがハッカーの手に渡らないよう保護することが、ますます重要になっています。
インターネットトラフィックの主要な種類の1つである、ブラウザとWebサイト間のHTTPトラフィックも、当然ながらこうした攻撃の対象となります。HTTPトラフィックを盗聴や改ざんから保護する基本的な方法の1つは、Transport Layer Security(TLS)プロトコルを使用して暗号化することです。暗号化されたトラフィックは、正確には「HTTPSトラフィック」と呼ばれ、Sは「secure」を意味しますが、ほとんどの場合、単に「HTTP」という用語で両方のトラフィックを指します。
URLを見ると、Webサイトが暗号化に対応しているかどうかを確認できます。
- 先頭が「https://」のURLでは暗号化が使用されています
- 先頭が「http://」のURLは暗号化されていません
多くのブラウザでは、暗号化が使用されている場合、アドレスバーの左端に南京錠のアイコンも表示されます。
注: TLSの前身であるSecure Sockets Layer(SSL)は現在非推奨ですが、セキュリティ上の脆弱性があるにもかかわらず、今なお広く使用されています。同様に、HTTPトラフィックの暗号化を指す際には、実際にはTLSが使用されている場合でも「SSL」(または「SSL/TLS」)という用語がよく使われます。
SSL/TLSとNGINX
NGINXにおけるSSL/TLS暗号化の概要として、いくつかのディレクティブを見てみましょう。HTTPS向けの基本的なNGINX設定は非常にシンプルです。
server { listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
#...
}The listenディレクティブは、sslパラメーターを使用して、server_nameディレクティブで指定されたドメイン(ここではwww.example.com)へのHTTPSトラフィックをポート443で待ち受けるようNGINXに指示します。
The ssl_certificateおよびssl_certificate_keyディレクティブは、ドメインのTLS証明書と鍵が保存されているファイルを指定します。ssl_protocolsおよびssl_ciphersディレクティブは、このNGINX仮想サーバーがサポートするSSL/TLSのバージョンと暗号スイート(暗号化アルゴリズム)をそれぞれ指定します。これらのディレクティブを設定すると、NGINXはクライアントとのセキュアな接続をネゴシエートし、証明書によって認証されたHTTPSコンテンツを配信します。
ウェビナーを視聴
HTTPS用ディレクティブの使用方法を説明するだけなら簡単ですが、証明書、鍵、暗号スイートの背後にある概念を理解するには、より深い知識が必要です。詳しくわかりやすく学ぶには、無料のオンデマンドウェビナー「NGIN 101:SSL/TLSとNGINによるWebトラフィックの暗号化」をご覧ください。
このウェビナーでは、Webトラフィックの暗号化について詳しく掘り下げ、以下の内容を学べます。
- NGINXがクライアントとの間にHTTPSで保護されたセッションを確立する仕組み
- リアルタイムデモで紹介するNGINXの基本設定と高度な設定
- HTTPリクエストをHTTPSにリダイレクトする方法
- 推奨されるTLS設定
NGINX Open Sourceの利用開始に関心があり、まだご不明な点がある場合は、NGINX Community Slackにご参加ください。自己紹介をして、NGINXのパワーユーザーが集まるコミュニティと交流しましょう。NGINX Plusを導入する準備ができている場合は、今すぐ30日間の無料トライアルを開始するか、ユースケースについてご相談ください。
著者について

関連するブログ記事
チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。
AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。
JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。
F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。
NGINX PlusによるAWS Auto Scalingグループの負荷分散
新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります