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 Limitパフォーマンス最適化とページングデータパフォーマンス最適化の詳細な説明

MySQL Limit はセグメント内のデータベース データをクエリでき、主にページングで使用されま...

Ubuntu16.04 インストール mysql5.7.22 グラフィックチュートリアル

VMware12.0+Ubuntu16.04+MySQL5.7.22 インストールチュートリアルの詳...

js 配列エントリ() 反復メソッドを取得する

目次1.entires() メソッドの詳細な構文2.entires() メソッドの一般的な使用法と注...

シンプルなカルーセル効果を実現するネイティブ js

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

JavaScript 戦略パターンを使用してフォームを検証する方法

目次概要戦略パターンを使用しないフォーム検証戦略パターンを使用して最適化する戦略パターンの利点要約す...

JS 1次元配列を3次元配列に変換する例

今日、CSDN の Q&A セクションで友人が質問をしているのを見ました。彼は 1 次元配列...

Linux 圧縮ファイルコマンド zip の使用例

「.zip」形式は、Windows システムでファイルを圧縮するために使用されます。実際、「.zip...

MySQLクラスタのDockerデプロイメントの実装

シングルノードデータベースの欠点大規模なインターネットプログラムはユーザーベースが大きいため、アーキ...

Vue の element-ui コンポーネントのデフォルトの CSS スタイルを変更する 4 つの方法

目次序文1. グローバル統合オーバーライドを使用する2. .vueファイルを変更する3. コンポーネ...

springcloud alibaba nacos linux 設定の詳細なチュートリアル

まず、github から nacos の圧縮パッケージをダウンロードします: https://git...

完全なショッピングカートを実装するためのミニプログラム

ミニプログラムは、参考までに完全なショッピングカート[すべて選択/選択解除して金額を計算/加算と減算...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

レスポンシブ原則と Vue2.0/3.0 の違いについての簡単な分析

序文vue3.0 が正式にリリースされて以来、多くの友人が vue3.0 に切り替えました。ここでは...

Tomcatの各ポートの機能の詳細な説明

tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、800...