今日はたまたま友人のサーバーの移転を手伝うことになり、サーバーの基本的な設備の設定を行ったのですが、設定中にいくつか問題が発生しました。現在の Google Chrome / Safari では http を https に強制変換してしまうことが判明しました。 最初は何が起こっているのかわからず、ドメイン名のレコードをリセットしました。さらに、pingを実行すると、ドメイン名をサーバーアドレスに正常に解決できます。そこで、http -> httpsのプロセスに注目しました。WeChatの組み込みブラウザを使用して、httpドメイン名にアクセスできることがわかりました。証明書を設定します。 ここで使用する証明書も無料の acme.sh で、github で入手できます。まずはダウンロードしてみましょう。 カール https://get.acme.sh | sh 次にbashをリロードします ソース ~/.bashrc このとき、 acmeの設定インストールが完了したら、証明書の作成を開始します。ここでは、DNS API を直接使用して、ドメイン名の検証やその他の操作を完了します。 詳細については、dnsapiを参照してください。 ゴダディを例に挙げてみましょう まず、端末設定ファイル(サービスプロバイダーから取得)にキーとシークレットを設定します。 GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" をエクスポートします GD_Secret="asdfsdfsdfsdfdfsdf" をエクスポートします 次に、コマンドを直接入力します acme.sh --issue --dns dns_gd -d demo.com -d *.demo.com ここで証明書ファイルが生成されます。通常は /root/.acme.sh/xxx.com/xxx.com.cer に保存されます。 Dockerボリュームのメンテナンスを容易にするために、これらの証明書を保存するためのフォルダを再作成します。 mkdir /opt/www/nginx/ssl もう一度コマンドを入力して、証明書をsslディレクトリに配置します。 acme.sh --install-cert -d demo.com \ --key-file /opt/www/nginx/ssl/demo.com.key \ --fullchain-file /opt/www/nginx/ssl/demo.com.crt\ この時点で、/opt/www/nginx/sslの下に2つのファイルが表示されます。 この時点で、ドメイン名証明書の構成は完了です。次にdocker-compose.ymlを設定します docker-compose を使用してコンテナを作成する バージョン: '3.5' サービス: アプリ: イメージ: nginx:1.19.8 ポート: - 80:80 -443:443 ボリューム: - ./conf/nginx.conf:/etc/nginx/nginx.conf # 設定ファイル - /opt/www:/opt/www # プロジェクトディレクトリ - /opt/www/nginx/ssl:/opt/www/ssl # 証明書ファイル restart: always ネットワーク: デフォルト: 名前: デフォルトネットワーク ymlファイルを書いたら、nginxの設定をしましょう。nginxの設定をする前に、まず鍵交換ファイルDHEパラメータファイルを設定する必要があります。 openssl dhparam -out /opt/www/nginx/ssl/dhparam.pem 2048 次に、 まずディレクトリ サーバー{ 80 default_server をリッスンします。 リッスン [::]:80 default_server; サーバー名_; 場所 /.well-known/acme-challenge { ルート /opt/www/letsencrypt; } 位置 / { 301 https://$host$request_uri を返します。 } } 上記の構成により、すべての http リクエストが https にリダイレクトされます。 次に独自のドメイン名を設定します。 サーバー{ 443 ssl http2 default_server をリッスンします。 listen [::]:443 ssl http2 default_server; サーバー名 demo.com; ルート /opt/www/html; インデックス index.html index.htm index.php; # Diffie-Hellman 鍵交換 ssl_dhparam /opt/www/ssl/dhparam.pem; ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2; SSL_CIPHERS 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ecdsa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa- -RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-EECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHA-ECDHA HE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256 DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256:AES256-SMHA384 56-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!dss '; ssl_prefer_server_ciphers をオン; ssl_session_cache 共有:SSL:50m; ssl_session_timeout 1日; #証明書ファイル ssl_certificate /opt/www/ssl/demo.com.crt; ssl_certificate_key /opt/www/ssl/demo.com.key; # HSTS プリロード サポートを有効にする add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; アクセスログ /var/log/nginx/demo.com.access.log; error_log /var/log/nginx/demo.com.error.log; } 設定が必要なサブドメインがある場合は、上記の設定をコピーして、これらの場所を変更するだけです。その他の設定は変更せずにそのままにしておきます。 ドメイン名サービスプロバイダーもAレコードを追加する必要がある サーバー{ listen 443 ssl http2; #ここではデフォルトのサーバーは存在しないことに注意してください listen [::]:443 ssl http2; #ここではデフォルトのサーバーは存在しないことに注意してください server_name example.demo.com; #サブドメイン access_log /var/log/nginx/example.demo.com.access.log; error_log /var/log/nginx/example.demo.com.error.log; } 最終的な nginx conf は次のとおりです。 イベント { ワーカー接続 1024; } http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; ファイル送信オン; キープアライブタイムアウト300; サーバー{ 80 default_server をリッスンします。 リッスン [::]:80 default_server; サーバー名_; 場所 /.well-known/acme-challenge { ルート /opt/www/letsencrypt; } 位置 / { 301 https://$host$request_uri を返します。 } } サーバー{ 443 ssl http2 default_server をリッスンします。 listen [::]:443 ssl http2 default_server; サーバー名 demo.com; ルート /opt/www/html; インデックス index.html index.htm index.php; # Diffie-Hellman 鍵交換 ssl_dhparam /opt/www/ssl/dhparam.pem; ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2; SSL_CIPHERS 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ecdsa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa-sa- -RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-EECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHA-ECDHA HE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256 DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256:AES256-SMHA384 56-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!dss '; ssl_prefer_server_ciphers をオン; ssl_session_cache 共有:SSL:50m; ssl_session_timeout 1日; #証明書ファイル ssl_certificate /opt/www/ssl/demo.com.crt; ssl_certificate_key /opt/www/ssl/demo.com.key; # HSTS プリロード サポートを有効にする add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; アクセスログ /var/log/nginx/demo.com.access.log; error_log /var/log/nginx/demo.com.error.log; } } この時点で、設定は基本的に完了です。 次のコマンドを実行します docker-compose -f docker-compose.yml アップ -d dockerでnginxの+httpsマルチドメイン名設定を完了できます これで、docker nginx + https サブドメイン構成の詳細なチュートリアルに関するこの記事は終了です。より関連性の高い docker nginx https 構成コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: JavaScript は div マウス ドラッグ効果を実装します
情報の最適化と改良は常にデザインの最初のステップです。 「これは百度アライアンスユーザーエクスペリエ...
効果: タイトルには独自のシリアル番号があり、コードブロックには配色があり、コードブロックの左上隅に...
キー修飾子キーボード イベントをリッスンする場合、詳細なキーを確認する必要があることがよくあります。...
awk を学ぶ前に、sed、grep、tr、cut などのコマンドを学んでおく必要があります。これら...
前面に書かれたコードがどれだけ適切に記述されていても、すべての可能性のある例外を完全に処理することは...
新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...
目次概要Canvas API: グラフィックスの描画パス線種矩形アーク文章グラデーションと画像の塗り...
目次1. ミックスイン.scss 2. 単一ファイルの使用3. グローバルマウント3.1 依存関係の...
カーネル 2.6 の時代には、アクセス制御セキュリティ ポリシーのメカニズムを提供するために新しいセ...
この記事では、JavaScriptで簡単なGobangゲームを実装するための具体的なコードを参考まで...
forループ基本的な構文形式: for(変数の初期化; 条件式; 演算式){ループ本体ステートメント...
効果: CSS スタイル: <スタイル タイプ="text/css">...
オペレーティングシステム: Ubuntu 17.04 64ビットMySQL バージョン: MySQL...
多くの場合、透明度の設定やぼかしなど、写真の背景を加工する必要があります。 ただし、背景画像が配置さ...
次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...