Nginx設定の原理と実装プロセスの詳細な説明https

Nginx設定の原理と実装プロセスの詳細な説明https

Linuxユーティリティcertbotを使用してhttps証明書を生成する

このツールは Let's Encrypt 証明書を生成します。

Let's Encryptデジタル証明書認証機関、Let's Encryptはインターネットセキュリティ研究グループ(ISRG、非営利団体)が提供するサービスです

無料のSSL/TLS証明書を提供

2015 年 12 月 3 日に、このサービスはパブリック ベータ ステージに入り、正式に一般向けにリリースされました。

2016 年 4 月 12 日に、プロジェクトは正式にベータ ステージを終了しました。

2016 年 9 月 9 日現在、Let's Encrypt は 1,000 万の証明書を発行しています。

したがって、ほとんどの中小規模の Web サイトにとって、これは検討する価値のあるオプションです。

https設定の手順

1https://certbot.eff.org/を開き、対応するオペレーティングシステムとWebサーバーを選択します

ここではCentOS7サーバー上のnginxサーバーを選択します

2コマンドを実行し、必要に応じて対応するドメイン名パラメータを変更します。

Certbot は yum を通じてインストールする必要があります。Certbot は epel ソースにパッケージ化されています。

epelライブラリをインストールして起動し、epelソースビューリンクをインストールします

https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F

epel ソースを起動します。epel は手動で起動することも、yum-config-manager コマンドを使用して起動することもできます。

yum-config-managerをインストールする

yum -y yum-utilsをインストールします

エペルを開始

yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

3 certbotのインストール

sudo yum で certbot python2-certbot-nginx をインストールします

証明書を取得する 2 つの方法: 認証システムとインストーラー

インストールには webRoot プラグインを使用します。サーバーのポート 80 に正常にアクセスできる必要があります (このドメイン名はあなたに属します)

webRoot プラグインは、certonly と --webroot (または -w) をコマンド ラインに渡します。

certbot certonly -w /var/www/example -d www.example.com

certbot certonly -w http でアクセスできる webroot ディレクトリ -d https を設定するためのドメイン名

上記の/var/www/exampleは、nginx設定ファイルのルートノードが指すルートパスを表します。

Webroot プラグインは、要求されたドメインごとに一時ファイル ${webroot-path}/.well-known/acme-challenge を作成することで機能します。

次に、Let's Encrypt 検証サーバーは HTTP リクエストを送信し、要求された各ドメインの DNS が certbot を実行しているサーバーに解決されることを確認します。

アクセス要求は次のとおりです

66.133.109.36 - - [05/Jan/2016:20:11:24 -0500] "GET /.well-known/acme-challenge/HGr8U1IeTW4kY_Z6UIyaakzOkyQgPr_7ArlLgtZE8SX HTTP/1.1" 200 87 "-" "Mozilla/5.0 (互換; Let's Encrypt 検証サーバー; +https://www.letsencrypt.org)"

そのため、サーバーはアクセスパス.well-known/acme-challengeを開く必要があります。

例えば、

サーバ
  {
    聞く 80;
    サーバー名 www.example.com; 
    インデックス index.html ;
    ルート /var/www/example;
  
    。 。 。
  
    場所 ~ /.well-known {
      すべて許可する。
    }
  }

特定の http 設定ファイル

サーバ
  {
    聞く 80;
    サーバー名 www.example.com; 
    インデックス index.html ;
    ルート /var/www/www.example.com;


    位置 / {
      proxy_redirect オフ;
      proxy_pass http://localhost:8080;
      proxy_set_header ホスト $host;
      proxy_set_header X-real-ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #エラーページ 404 /404.html;

    場所 /nginx_status
    {
      #stub_status オン;
      #access_log オフ;
    }

    場所 ~ /.well-known {
      すべて許可する。
    }

    場所 ~ /\。
    {
      すべてを否定する;
    }
アクセスログ /data/log/nginx//var/www/www.example.com/-access.log;
    error_log /data/log/nginx//var/www/www.example.com/-error.log;
}

コマンドを実行すると、/etc/letsencrypt/liveディレクトリにhttps証明書が生成されます。

certbot certonly -w /var/www/example -d www.example.com

たとえば、上記のコマンドは証明書 /etc/letsencrypt/live/www.example.com/fullchain.pem を生成します。

証明書キーファイル /etc/letsencrypt/live/www.example.com/privkey.pem を生成します。

次にドメイン名のhttps設定を追加するだけで、nginxがhttps設定を完了します。

httpsはポート443に対応します

特定の https 設定ファイル

サーバ
  {
    443 ssl http2 をリッスンします。
    #listen [::]:443 ssl http2;
    サーバー名 www.example.com;
    インデックス index.html index.htm index.php default.html default.hm default.php;
    ルート /var/www/www.example.com/;
    
    sslオン;
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    
   位置 / {
      proxy_redirect オフ;
      proxy_pass http://localhost:8080;
      proxy_set_header ホスト $host;
      proxy_set_header X-real-ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #エラーページ 404 /404.html;

    enable-php-pathinfo.conf をインクルードします。

    場所 ~ /.well-known {
      すべて許可する。
    }

    場所 ~ /\。
    {
      すべてを否定する;
    }

    アクセスログ /data/log/nginx/www.example.com-ssl-access.log;
    error_log /data/log/nginx/www.example.com-ssl-error.logs;  
}

生産証明書を見る

ツリー /etc/letsencrypt/live/

証明書の更新

Let's Encryptによって生成された無料の証明書は3か月有効ですが、証明書は無制限に更新できます。

certbot 更新

タイマーを使用して証明書を自動的に再生成する

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

CentOS 6の使用

1 certbotクライアントを入手する

https://dl.eff.org/certbot-auto を取得します。
chmod a+x certbot-auto

2 nginxを停止する

サービス nginx 停止

3 証明書を生成する

./certbot-auto certonly --standalone --email `あなたのメールアドレス` -d `あなたのドメイン名アドレス`

現在のウェブサイトに複数のドメイン名がある場合は、最後に追加する必要があります。例:

./certbot-auto certonly --standalone --email `あなたのメールアドレス` -d `あなたのドメイン名 1` -d `あなたのドメイン名 2`

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SSL を実装するために nginx を設定する方法の例
  • Nginx は https ウェブサイト構成コード例を実装します
  • https暗号化アクセス用にnginxを設定するための詳細なチュートリアル
  • Nginxドメイン名転送のhttpsアクセスの実装
  • Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)
  • Nginxはhttpとhttpsの両方のアクセスをサポートするために同じドメイン名を設定します
  • HttpとHttpsの両方をサポートするNginxの詳細な設定
  • 複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装
  • Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装するためのサンプル コード
  • nginx で http でアクセスする Web サイトを https に変更する方法

<<:  MySQL マスタースレーブレプリケーションでエラーをスキップする方法

>>:  Vueは製品の拡大鏡効果を実現します

推薦する

MySQL に IP アドレスを効果的に保存する方法と、文字列 IP と数値を変換する方法の詳細な説明

High Performance MySQL バージョン 3 (セクション 4.1.7) を見ると、...

Vueは適切なスライドアウトレイヤーアニメーションを実装します

この記事では、適切なスライドアウトレイヤーアニメーションを実装するためのVueの具体的なコードを例と...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...

Vueドロップダウンリストの2つの実装方法の比較

Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...

MySQLデータ内の多数の改行と復帰に対する解決策

目次問題を見つける1. 改行と復帰を削除する方法2. SELECTクエリで「改行と復帰」を無視する方...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

テーブルの追加と削除の操作を実装する js

この記事の例では、テーブルを追加および削除するためのjsの具体的なコードを参考までに共有しています。...

Linux で yum と入力した後に -bash: /usr/bin/yum: No such file or directory という問題を解決する方法

Linuxでyumを入力すると、プロンプトが表示されます: -bash: /usr/bin/yum:...

Vue における LocalStorage と SessionStorage の違いと使い方

目次LocalStorageとはSessionStorageとはLocalStorage と Ses...

JavaScript es6 の新しい配列メソッドの詳細な説明

目次1. 各() 2. arr.filter() 3. arr.every() 4. arr.map...

JavaScript における URL オブジェクトの素晴らしい使い方

目次序文解析パラメータURLパラメータを変更する要約する序文URLオブジェクトはページ側ではあまり使...

JavaScriptを使用してページ効果を作成する

11. JavaScriptを使用してページ効果を作成する11.1 DOMプログラミングDOM プロ...

MySQL 8.0.21 の最新バージョンのダウンロード、インストール、設定に関する詳細なチュートリアル

1. ダウンロード1. インストールパッケージをダウンロードするMySQL ダウンロード パス: h...

MySQLのSeconds_Behind_Masterの詳細な説明

目次マスターの後ろの秒数オリジナルの実装最終マスタータイムスタンプマスターとのクロック差他の実行時間...

Vue の新しいおもちゃ VueUse の具体的な使い方

目次序文VueUseとは使いやすいおなじみの手ぶれ補正やスロットル機能もありますグローバル状態を共有...