Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

序文

HTTP と HTTPS

日常生活でよく使われる URL は、おおまかに次の 2 種類に分けられます。

1 つは http プロトコルに基づいています (例: http://www.baidu.com)。

1 つは https://www.baidu.com のような https プロトコルに基づいています。

現在、多くの Web サイトがセキュリティ上の理由から Web サイトのドメイン名アクセスを http から https にアップグレードしています。http と https の概念がわからない場合は、次の記事を読んでみてください: HTTP と HTTPS の違いは何ですか?

SSL証明書

では、http を https にアップグレードするにはどうすればよいでしょうか?

http を https にアップグレードする必要があり、まず SSL 証明書が必要です。 SSL は、学部の学位証明書のようなものだと考えてください。この学部の学位証明書があれば、自分が学部生であることを証明でき、学部生基準で採用に応募することができます。もちろん、証明書は異なる機関によって発行されることがあります。たとえば、清華大学の学部卒業証書と、普通の三流大学の学部卒業証書の価値は明らかに異なります。 SSL 証明書についても同様であり、発行機関も異なります。

構成

ドメイン名と SSL 証明書を取得したら、ドメイン名の URL を https にアップグレードできます。一般的な方法は、Nginx でドメイン名の SSL 証明書を構成することです。

具体的なプロセス

訪問を開始する

(1)以下では、自分のウェブサイトを使用して、個人ウェブサイトのSSL証明書を設定し、ウェブサイトをSSLにアップグレードします。

私は自分のウェブサイト (http://www.zyqok.cn/fj.jpg) の写真を訪問しました。これは http 訪問です。

ここに画像の説明を挿入

(2)その後、httpsアクセスに変更しましたが、アクセスできないことがわかりました。

ここに画像の説明を挿入

これから正式に開始し、ウェブサイトを https リクエスト アクセスに変更します。

サーバーにNginxをインストールする

まず、サーバーにNginx環境をインストールする必要があります。サーバーにすでにNginxがインストールされている場合は、この手順をスキップできます。Nginxがインストールされていない場合は、

SSL証明書を取得する

Alibaba Cloud からサーバーを購入したので、Alibaba からいくつかの無料の SSL 証明書が提供されます。以下は、Alibaba Cloud から SSL 証明書を取得するプロセスの説明です。
Alibaba Cloud の顧客でない場合は、この手順をスキップして、Baidu で「SSL 証明書」を検索し、関連メーカーから購入するか、Baidu で「無料の SSL 証明書」を検索してください。

(1)Alibaba Cloudにログインし、[SSL証明書]列を見つけてクリックします(この機能はすでに有効になっているため、場所が異なる場合がありますので、パネルに移動して自分で見つけてください)。

ここに画像の説明を挿入

(2)このパネルに到達したら、[証明書を購入]をクリックします。

ここに画像の説明を挿入

(3)無料モデルを選択して購入する

ここに画像の説明を挿入

(4)購入が完了すると、該当する記録がページに表示されるので、[証明書を申請]をクリックします。

ここに画像の説明を挿入

(5)次に、アップグレードしたいドメイン名を入力します。たとえば、個人のウェブサイトhttp://www.zyqok.cnをhttps://www.zyqok.cnにアップグレードしたいとします。
このとき、ドメイン名を zyqok.cn として入力し、その他の情報を入力して [次へ] をクリックすると、証明書が上記に送信され、レビュー ステータスが入力されます。

ここに画像の説明を挿入

(6)申請が承認されると、SSL証明書をダウンロードできるようになります。右下の[ダウンロード]をクリックします。

ここに画像の説明を挿入

(7)Nginxの後に[ダウンロード]を選択し続けます

ここに画像の説明を挿入

(8)ダウンロードが完了すると、SSL証明書の圧縮パッケージが取得できます。

ここに画像の説明を挿入

SSL証明書をサーバーにアップロードする

(1)まず証明書パッケージを解凍すると、次の2つのファイルが得られます。

ここに画像の説明を挿入

(2)FTPツールを使用してこれら2つのファイルをサーバーにアップロードし、Nginx設定ファイルと同じディレクトリに配置します。

ここに画像の説明を挿入

設定を変更して再起動します

(1)Nginx.conf設定ファイルを開き、ポート443と80のサーバー情報を次のように設定します。
詳細な手順については、Alibaba Cloudのドキュメント「Nginx/TengineサーバーへのSSL証明書のインストール」を参照してください。

# httpsへの直接アクセス 
 サーバ
 {
  	文字セット utf8;
	聞く 443;
	ルート /opt/local;
	サーバー名 www.zyqok.cn; 
	sslオン;
	ssl_証明書 3067072_zyqok.cn.pem;
	ssl_certificate_key 3067072_zyqok.cn.key;
	ssl_session_timeout 5分;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
	ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers をオン;
	
 }
 
 # http から https へジャンプ
 サーバ 
 {
    聞く 80;
	サーバー名 zyqok.cn;
	^/(.*) https://www.zyqok.cn を永久に書き換えます。
 }

(2)青いボックスの内容は、ドメイン名とSSL証明書に関連するファイルであることに注意してください。

ここに画像の説明を挿入

(3)次にNginxサービスを再起動します。

nginxのsbinディレクトリに入り、次のコマンドを入力してnginxサービスを再起動します。

./nginx -s リロード

ここに画像の説明を挿入

(4)Alibaba Cloudサーバーの場合は、ポート80とポート443を開くことを忘れないでください。そうしないと、アクセスできなくなります。

設定方法がわからない場合は、こちらの記事を参照してください: Alibaba Cloud セキュリティルールの設定

ここに画像の説明を挿入

再度訪問

(1)https(ポート443)で直接アクセスすると、問題ないことが分かります。

ここに画像の説明を挿入

(2)その後http(ポート80)でアクセスすると自動的にhttpsにジャンプしますが、これも問題ありません。

ここに画像の説明を挿入

ここまでで、SSL 証明書を構成する方法を学習しました。読んでくれてありがとう!

以下もご興味があるかもしれません:
  • SSL モジュール構成を使用して HTTPS アクセスをサポートする nginx の詳細な説明
  • HTTPS アクセスを実現するための Nginx 構成 SSL 証明書の詳細な説明
  • nginx で SSL 証明書を設定して https サービスを実装する方法
  • SSL証明書を使用してnginxを構成し、httpsアクセスを実装する例
  • HTTPS ウェブサイトを展開するために SSL 証明書を使用して Nginx を構成する方法 (証明書の発行)
  • nginx ssl を設定して https アクセスを実装する手順 (初心者向け)
  • nginx 環境で SSL 暗号化を構成する (単一および双方向認証、部分的な https)
  • SSL モジュールを使用して nginx を HTTPS アクセスをサポートするように構成する方法
  • NginxはSSLを構成して、httpsのプロセス全体を実装します。

<<:  PythonはデータベースMySQLの解凍バージョンのインストール構成に接続し、問題が発生しました

>>:  JS 手ぶれ補正機能の実装と使用シナリオ

推薦する

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

MySQL 8.0.19 のインストールと設定方法のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.19のインストールと設定のグラフィックチュートリアルを記...

Vue+echarts でプログレスバーのヒストグラムを実現

この記事では、プログレスバーヒストグラムを実現するためのvue+echartsの具体的なコードを参考...

MySQL で特定の日、月、または年のデータをクエリするためのコードの詳細な説明

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...

10秒以内にMySQLデータベースに数百万件のレコードを挿入する実装

まず、次の質問について考えてみましょう。このような膨大な量のデータをデータベースに挿入するには、通常...

dockerを使用してTomcatをデプロイし、Skywalkingに接続する

目次1. 概要2. dockerを使用してTomcatをデプロイし、Skywalkingに接続する要...

NavicatがMySQL8.0.11に接続するとエラー2059が発生する

間違いNavicat Premium を使用して MySQL に接続すると、次のエラーが発生します。...

Win10 の組み込み Linux システムを使用して Spring Boot プロジェクトを開始する方法

1. Windows10の組み込みLinuxサブシステムをインストールする1.1. Linuxサブシ...

入力ボックスの値を取得する方法のReactの例

入力ボックスの値を取得する複数の方法最初の方法は、制御されていないコンポーネントの取得です2番目の方...

MySql データ型チュートリアル例の詳細な説明

目次1. 概要2. MySQLデータ型の詳細な説明1) 文字列型2) 整数型3) 浮動小数点型4) ...

js を使用して過去 1 週間、1 か月、3 か月の時間を取得する簡単な例

目次過去1週間の時間を取得する過去1か月の時間を取得する過去3か月分を取得新しい Date() と ...

Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

1. nginxを例に挙げるyumコマンドを使用してNginxをインストールしましたSystemd ...

DockerでPrometheusをインストールする詳細なチュートリアル

目次1. Node Exporterをインストールする2. cAdvisorをインストールする3. ...

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

Typescript での infer キーワードの使用に関する詳細な理解

目次推測する事例:理解を深める参照する後で忘れないように、キーワード infer をメモしておきます...