1. 背景私は、nginx を使用して外部 http アクセスを提供するデータ表示用の Web サイトを持っています。また、別のシステムでは、ハイパーリンクを使用して、エンド ユーザーがアクセスできるように私の Web サイトにジャンプします。その後、相手側から、自分のサイトはhttpsでアクセスされており、httpで直接アクセスすることはできないので、httpsアクセスをサポートする必要があると言われました。 したがって、これはディスプレイ Web サイトの参考資料に過ぎず、インタラクティブ Web サイトの作成方法はわかりません。 ***私の nginx に関する理解は、設定ファイルを介した Web サイト アクセスの設定に限られており、他の点については深く理解していません。 *** 2. 前提条件https:HTTPS (正式名称: Hyper Text Transfer Protocol over Secure Socket Layer または Hypertext Transfer Protocol Secure) は、セキュリティを目的とした HTTP チャネルです。簡単に言えば、HTTP の安全なバージョンです。つまり、HTTP の下に SSL レイヤーが追加されます。HTTPS のセキュリティ基盤は SSL であるため、暗号化された詳細には SSL が必要です。 簡単に言えば、証明書は Web サイトに埋め込まれており、ユーザーがブラウザを通じて Web サイトのサーバーとやり取りするときにデータが暗号化され、セキュリティが確保されます。 証明書システム:ツリー構造には、複数のレベルの認証局が存在する場合があります。最上位の認証局はルート認証局と呼ばれ、ルート証明書の秘密鍵を保持し、次のレベルの証明書を発行できます。各組織または個人が使用する証明書は、認証局によって発行されます。簡単に言えば、発行局は、その秘密鍵を使用して、証明書所有者の個人情報、公開鍵、およびその他の情報にデジタル署名し、証明書が発行局によって認証されていることを外部に宣言します。証明書は、所有者の身元を確認するために公開アクセスが可能で、発行機関によって承認されています。証明書に対応する秘密鍵は、所有者によって保持され、一般には公開されません。これは、証明書内の公開鍵を使用して他の人が暗号化したプライベート メッセージを復号化するために使用されます。 これは公安機関による身分証明書の発行と似ています。全国にトップレベルの公安部があり、すべての省の公安局の管理に責任を負っています。省レベルは市レベルに責任を負っています。そして最終的には警察署が個人に身分証明書を発行します。身分証明書は警察署の承認を得ており、警察署は上司の承認を得ており、さらにその上司は公安部に至るまで、すべて承認を得ているため、私たちは身分証明書で外部に対して身元を証明できます。違いは、ID カードには証明書ほど多くの情報が含まれていないことです。 注: 証明書は公開鍵暗号化システムに依存しており、公開鍵と秘密鍵の 2 つの鍵が含まれます。公開鍵は暗号化と署名の検証に使用され、秘密鍵は復号化と署名に使用されます。 3. 操作プロセス3.1 証明書の生成主なプロセスは、ルート証明書 --> サーバー証明書です。ここでのサーバー証明書は、https アクセスを追加する必要がある、前述の Web サイト サーバーを指します。 1. ルート証明書の秘密鍵を生成し、ルート証明書要求を生成し、自己署名ルート証明書を作成します。 #ルート証明書の秘密鍵を生成する openssl genrsa -out root.key 2048 #ルート証明書要求を生成する openssl req -new -key root.key -out root.csr #ルート証明書の秘密鍵を使用してルート証明書を生成します openssl x509 -req -in root.csr -extensions v3_ca -signkey root.key -out root.crt ここでルート証明書の秘密鍵を使用した自己署名証明書を使用する理由は、証明書の形式が一貫しており、証明機関によって発行される必要があるためです。ルート証明機関には上位者がいないため、ルート証明機関は自分自身に証明書を発行し、誰もがそれを信頼する必要があります。 2. サーバー証明書の秘密鍵を生成し、サーバー証明書の要求を生成し、ルート証明書の秘密鍵を使用してサーバー証明書を発行します。このサーバー証明書の commonName は、一貫性を保つために、nginx 構成ファイルの server_name に設定する必要があることに注意してください。 #サーバー証明書の秘密鍵を生成する openssl genrsa -out server.key 2048 #サーバー証明書要求を生成する openssl req -new -key server.key -out server.csr #サーバー証明書を生成 openssl x509 -days 365 -req -in server.csr -extensions v3_req -CAkey root.key -CA root.crt -CAcreateserial -out server.crt -extfile openssl.cnf ここには注意が必要な openssl.cnf ファイルがあります。このファイルには、発行する必要があるサーバー証明書に関する情報が記述されています。内容は次のとおりです。 [必須] 識別名 = 必須識別名 要求拡張機能 = v3_req [必須識別名] 国名 = CN 国名_default = CN 州または省名 = 貴州省 stateOrProvinceName_default = 貴州省 地域名 = 貴州省 localityName_default = 貴州省 organizationalUnitName = (Web ページが IP でアクセスされる場合は IP アドレスを記入します。ドメイン名でアクセスされる場合はドメイン名を記入します) organizationalUnitName_default = (Web ページへのアクセスが IP による場合は IP を記入します。ドメイン名による場合はドメイン名を記入します) commonName = (WebページがIPでアクセスされる場合はIPアドレスを記入します。ドメイン名の場合はドメイン名を記入します) 共通名_max = 64 [ v3_req ] # 証明書リクエストに追加する拡張機能 基本制約 = CA:FALSE keyUsage = 否認防止、デジタル署名、keyEncipherment 3.2 nginxの設定nginx 構成の HTTPS サーバー セクションのコメントを開き、場所の server_name、ssl_certificate、ssl_certificate_key、root などのフィールドを変更します。 ... # HTTPS サーバー # サーバー{ 443 ssl を聴く; server_name xxx.com(ウェブサイトアクセスアドレス) sslオン; ssl_certificate xxx.crt(サーバー証明書); ssl_certificate_key xxx.key (サーバー証明書の秘密鍵); ssl_session_cache 共有:SSL:1m; ssl_session_timeout 5分; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers をオン; 位置 / { root xxx (フロントエンドコードディレクトリ); インデックス index.html index.htm; } } ... 外部サービスを提供するために nginx を起動します。 3.3 ブラウザアクセスこれまで、サーバー側で https アクセスを構成しましたが、ブラウザーがアクセスすると、ブラウザーがまだ証明書を認識しておらず、安全かどうかわからないため、証明書エラーが表示されます。公安部が発行する身分証明書を身元証明に使用することに問題がないのと同じように、自分で発行した身分証明書を身元証明に使用すると、発行機関の身元を誰も知らないため、他人はそれを信じない可能性があります。 そのため、サーバー証明書の発行機関、つまり上記で生成したルート証明書をブラウザの信頼リストに追加する必要があります。具体的な操作方法は次のとおりです。Windows システムの場合は、ルート証明書ファイルを直接ダブルクリックし、[インストール] をクリックして、信頼できるルート証明機関にインストールします。このとき、スムーズにアクセスできます。 上記は、nginx が http でアクセスされるウェブサイトを https でアクセスするように変更する方法の詳細です。nginx の http アクセスを https アクセスに変更する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: MySQL の大きなテーブルで大量のデータを一括削除する方法
>>: W3C チュートリアル (7): W3C XSL アクティビティ
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...
1.ハードディスクを追加する2. パーティションの状態を確認します: fdisk -l 3. パーテ...
序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...
1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...
10.4.1 フレームセットとフレームの違い まず、フレームセットとフレームの違いについて説明します...
序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...
ケース1: 最後の提出とプッシュなし次のコマンドを実行します。 git コミット --amend g...
トレーニングのための一連のプロジェクト反応+ts内容は少ないですが、フックのカプセル化、ts ジェネ...
リクエストロジックフロントエンド --> https経由でnginxをリクエストnginx -...
目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...
この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...
最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...
1. Pythonは起動時に自動的に実行されますPython の自己起動スクリプトがauto.pyで...
目次mysql フィルター レプリケーションメインデータベースに実装ライブラリから実装いくつかの質問...