Nginx HTTPS
HTTPSの基本概念
1.SSL
- Secure SocketLayer
- ユーザーとサーバーを認証して、データが正しいクライアントとサーバーに送信されるようにします
- データが途中で盗まれるのを防ぐためにデータを暗号化する
- データの整合性を維持して、転送プロセス中にデータが変更されないようにします
2.HTTPS
SSLを使用して安全な通信を実現
3.証明書
-
証明書は、キーの合法性を保証するために使用されます
-
証明書の対象は、ユーザー、コンピューター、サービスなどです。
-
証明書の形式はX.509標準に準拠しています
-
デジタル証明書には情報が含まれています
- ユーザーの公開鍵の値
- ユーザー識別情報(名前やメールアドレスなど)
- 限られた期間(整数の有効時間)
- 発行者識別情報
- 発行者のデジタル署名
-
デジタル証明書は、権威のある公平なサードパーティ組織とCAによって発行されます
4.HTTP予備知識を構成します
- HTTPS証明書の選択
- OV証明書のプロフェッショナルバージョンで、会社名が表示されません
- 会社名を示すEV証明書の高度なバージョン
- HTTPS証明書の購入オプション
- 1つのドメイン名を保護するwww
- 5つのドメイン名を保護するwwwimages cdn test m
- ワイルドカードドメイン名* .oldboy.com
- HTTPSに関する考慮事項
- HTTPSは第3レベルのドメイン名解決をサポートしていません
- Httpsは更新をサポートしており、証明書の有効期限が切れているため、交換のために再適用する必要があります
- Httpsは緑色です。これは、このWebサイトのURLがすべてhttpsであることを意味します。
- 膨らんだウェブサイトコードにhttpの安全でない接続が含まれているため、Httpsは黄色です
- HTTPSが赤、証明書が偽物または期限切れ
HTTPS証明書アプリケーション
1.キー生成プロセス
- キーを生成する
- 証明書署名要求ファイル(csrファイル)を生成します
- 証明書署名ファイル(CAファイル)の生成
2.現在の環境
// opensslは1.0.2である必要があります
[root@web02 bbb]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
// nginxにはsslモジュールが必要です
[root@web02 bbb]# nginx -V
--with-http_ssl_module
[root@web02 bbb]# mkdir /etc/nginx/ssl_key -p
[root@web02 bbb]# cd /etc/nginx/ssl_key/
[root@web02 ssl_key]# openssl genrsa -idea -out server.key 2048
Enter pass phrase for server.key: 输入密码
Verifying - Enter pass phrase for server.key: 确认密码
[root@web02 ssl_key]# ll
总用量 4
-rw-r--r-- 1 root root 1747 2月 16 17:03 server.key
3.自己署名証明書を生成し、同時に秘密鍵のパスワードを削除します
[root@web02 ssl_key]# openssl req -days 46500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:CP
Organization Name (eg, company) [Default Company Ltd]:CN
Organizational Unit Name (eg, section) []:EU^H^H
Common Name (eg, your name or your server's hostname) []:oldboy.com
Email Address []:[email protected]
[root@web02 ssl_key]# ll
HTTPS構成シナリオ
1.HTTPS構成構文
構文:ssl on | オフ;
デフォルト:sslオフ;
コンテキスト:http、サーバー
構文:ssl_certificateファイル;
デフォルト:-
コンテキスト:http、サーバー
構文:ssl_certificate_keyファイル;
デフォルト:-
コンテキスト:http、サーバー
2.構成サポートNginxサポートhttpsインスタンス
[root@web02 conf.d]# cat ssl.conf
server {
listen 80;
server_name www.https1.com;
location / {
rewrite .* https://$server_name;
}
}
server {
listen 443;
server_name www.https1.com;
ssl on;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
location / {
root /html/https;
index index.html;
}
}
[root@web02 conf.d]# mkdir /html/https
[root@web02 conf.d]# echo "https hellow " > /html/https/index.htm
3.テスト訪問、
証明書は第三者機関によって発行されたものではなく、私たち自身によって発行されたものであるため、ブラウザは警告を発します