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は製品の拡大鏡効果を実現します

推薦する

Linux での中国語入力方法の問題を素早く解決する

背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...

ウェブデザイナーが持つべき7つのスキル

Web デザインは科学であると同時に芸術でもあります。 Web デザイン作業は、半分は適切なプログラ...

mysql データはどこに保存されますか?

MySQLデータベースの保存場所: 1. MySQLがMyISAMストレージエンジンを使用する場合...

クールな点滅アラームボタンをおすすめします

効果は以下のとおりです。 コードは次のとおりです (クリックすると展開してソース コードが表示されま...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

Docker-compose におけるdepends_on 順序問題を解決する方法についての簡単な説明

コンテナをソートするためにdepends_onを使用しても、コンテナ間の依存関係の問題は完全には解決...

forEachでawaitが機能しない問題を解決する

1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...

Vue echarts は棒グラフの動的な表示を実現します

この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...

Node.jsがES6モジュールを処理する方法の詳細な説明

目次1. 2つのモジュールの違い2. Node.jsとの違い3. CommonJSモジュールの読み込...

Navicat Premium15 でクラウド サーバーに接続する際のデータベースの問題と落とし穴

クラウドサーバーを使用するとデータベースに接続できる場合もありますが、Navicat Premium...

MySQLパーティションテーブルは月別に分類されています

目次テーブルを作成するデータベース ファイルを表示します。入れるクエリ消去補足:Mysqlは月テーブ...

WebプロジェクトをIdeaにインポートし、Tomcatに公開する問題を解決します

Idea は既存の Web プロジェクトをインポートして Tomcat に公開しますが、Tomcat...

抽選効果を実現するJavaScript

この記事では、宝くじマシンの効果を実現するためのJavaScriptの具体的なコードを参考までに共有...

事例を通してLinux NFSの仕組みを詳細に分析

前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...