NGINX は SSL 双方向認証を構成します
背景
NGINX の HTTPS 構成の場合、ブラウザーには信頼できる認証局 (CA) が組み込まれており、サーバー側はこれらの組織によって発行された証明書を取得するだけでよいため、通常はサーバー側の認証を実装する必要があります。構成が完了すると、ブラウザは証明書自体の有効性を検証し、SSL 経由で通信を暗号化します。
ただし、特殊な場合には、クライアントを検証する必要もあります。現時点では、クライアントが利用可能な証明書を要求した場合にのみ、双方向認証を有効にする必要があります。サーバーインターフェース。
CA と自己署名
CA は権威ある組織によってのみ実行でき、その組織がセキュリティ標準を満たさない場合、ブラウザのメーカーによって「ブロック」されます。少し前までは、WoSign と StartSSL が Mozilla によってブロックされていました。クロム。ただし、独自の CA を構築するため、これは双方向認証構成には影響しません...
便宜上、NGINX ディレクトリで証明書関連の作成を行います:
cd /etc/nginx mkdir sslcd ssl
Make CA private key
openssl genrsa -out ca.key 2048
Make CAルート証明書 (公開鍵)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
注:
共通名は任意に入力できます
その他入力が必要な情報。エラーを避けるために入力してください。
サーバー側証明書
サーバー側の秘密鍵を作成します
openssl genrsa -out server.pem 1024 openssl rsa -in server.pem -out server.key
リクエストを生成して発行します
注: ここでは usb.dev を使用し、次の NGINX 構成では
を使用します。入力する必要があるその他の情報。エラーを避けるために、 を入力してください。 key -CAcreateserial -days 3650 -out server.crt
クライアント証明書サーバー証明書と同様:
注:
共通名は任意に入力できます
その他の入力が必要な情報。エラーを避けるために、 を入力してください (CA ルート証明書と一致させるため)
これで、必要な証明書がすべて揃ったので、NGINX の構成を開始できます。
NGINX
openssl req -new -key server.pem -out server.csr
ここで、 ssl_client_certificate /etc/nginx/ssl/ca.crt; は、リクエスト内のクライアント証明書が CA によって発行されたかどうかを検証するために CA 証明書を使用することを意味します。
設定後、NGINX をリロードします:
server { listen 443 ssl; server_name usb.dev; access_log off; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_client_certificate /etc/nginx/ssl/ca.crt; ssl_verify_client on; location / { proxy_pass http://backend$request_uri; } }
さて、検証を開始できます。
検証のリクエスト
検証プロセスは、他のマシンでもこのマシンでも実行できます。usb.dev を解析できるようにするには、/etc/hosts も設定する必要があります。
service nginx reload
ブラウザを使用している場合は、クライアント証明書を p12 形式にエクスポートする必要があることを確認してください。ここではスキップしてください。私たちは、curl による検証に重点を置いています:
127.0.0.1 usb.dev
ここで --insecure は、自己構築 CA の非権限的な性質を無視することです。検証が正常であれば、幸運です。ここには深い落とし穴があるからです。curl の一部のバージョンでは、エラーが報告されます:
curl --insecure --key client.key --cert client.crt 'https://usb.dev'
これらのエラー報告バージョンのcurlでは、実際には、 -- のパスが厳密に要求される必要があります。 cert の実パラメータは完全に正しい必要があります。たとえば、現在のディレクトリの下で --cert ./client.crt を使用します。 --cert client.crt を使用するのは間違いです。ピットクライミングプロセス中に、プロセス全体を観察するために -v パラメーターが有効になり、アラームが見つかりました:
<html> <head><title>400 No required SSL certificate was sent</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <center>No required SSL certificate was sent</center> <hr><center>nginx/1.11.0</center> </body> </html>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

「nginx へようこそ!」エラーを解決するには、仮想ホスト構成を確認し、仮想ホストを有効にし、Nginx をリロードする必要があります。仮想ホスト構成ファイルが見つからない場合は、デフォルト ページを作成して Nginx をリロードすると、エラー メッセージが表示されます。が消え、ウェブサイトは通常のショーになります。

Docker 環境でのコンテナ通信には、共有ネットワーク、Docker Compose、ネットワーク プロキシ、共有ボリューム、メッセージ キューの 5 つの方法があります。分離とセキュリティのニーズに応じて、Docker Compose を利用して接続を簡素化するか、ネットワーク プロキシを使用して分離を強化するなど、最も適切な通信方法を選択します。

phpMyAdmin に登録するには、まず MySQL ユーザーを作成して権限を付与し、次に phpMyAdmin をダウンロード、インストール、構成し、最後に phpMyAdmin にログインしてデータベースを管理する必要があります。

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。

HTML ファイルを URL に変換するには Web サーバーが必要です。これには次の手順が含まれます。 Web サーバーを取得します。 Webサーバーをセットアップします。 HTMLファイルをアップロードします。ドメイン名を作成します。リクエストをルーティングします。

失敗した phpMyAdmin インストールのトラブルシューティング手順: システム要件を確認する (PHP バージョン、MySQL バージョン、Web サーバー)、PHP 拡張機能を有効にする (mysqli、pdo_mysql、mbstring、token_get_all)、構成ファイル設定を確認する (ホスト、ポート、ユーザー名、パスワード)、ファイルを確認するアクセス許可 (ディレクトリの所有権、ファイルのアクセス許可)、ファイアウォール設定の確認 (Web サーバー ポートのホワイトリスト)、エラー ログの表示 (/var/log/apache2/error.log または /var/log/nginx/error.log)、テクニカル サポートの問い合わせ ( phpMyAdmin
