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 アクティビティ
HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...
目次1. データベースを理解する1.1 データベースとデータ構造の関係1.2 なぜデータベースが必要...
過去の経験から言うと、タスクを完了した後にメモを取るのは良い習慣です。インストール環境はUbuntu...
この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...
最近、プロジェクトで問題が発生しました。サーバー側のプログラムが突然クラッシュして終了しました。クラ...
Tencent QQのホームページがリニューアルされ、Webフロントエンド開発がますます注目を集めて...
目次1. 閉鎖の概念追加の知識ポイント: 2. 閉鎖の役割: 3. 閉鎖例3.1 liをクリックする...
varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...
SVN は Subversion の略称で、ブランチ管理システムを使用して効率的に管理するオープンソ...
目次マクスウェルについてMaxwellの設定と使用1. Maxwellインストールパッケージをダウン...
DockerでNginxイメージをダウンロードする docker プル nginx Docker イ...
遅延読み込み(レイジー読み込み)とプリロードは、Web 最適化によく使用される手段です。 。 1. ...
nginx の設定は次のとおりです。 http://172.17.188.27/wgcloud など...
オンライン情報を参考に、cmakeを使用してCentOS6.8サーバーにMySQL5.7.18をイン...
MySQL 5.7.13 Mac用インストールチュートリアル、非常に詳細で、以下のように記録されてい...