OpenSSL を使用して Windows で自己署名証明書を生成し、http を https にアップグレードする方法

OpenSSL を使用して Windows で自己署名証明書を生成し、http を https にアップグレードする方法

序文

HTTPS は実際には HTTP over SSL です。つまり、HTTP 接続は SSL セキュア接続の上に確立されます。

自己署名証明書を作成するには、openssl がインストールされている必要があります。この記事の「OpenSSL のインストール」セクションを参照してください。

OpenSSL を使用して自己署名証明書を生成する手順: OpenSSL を使用して自己署名証明書を生成するには、この記事のセクションを参照してください

  1. 秘密鍵 Key (.key ファイル) を作成します。
  2. 署名リクエスト (.csr ファイル) を作成します。
  3. キー内のパスワード。
  4. キー (.key+.csr=>.crt) を使用して証明書に署名します。

HTTPS 用に準備された証明書は、作成された署名リクエストの CN がドメイン名とまったく同じでなければならないことに注意する必要があります。そうしないと、ブラウザーの検証に合格できません。

CA 証明書と自己署名証明書の違いは何ですか?

CA 証明書と自己署名証明書はどちらも暗号化通信に使用されるデジタル証明書ですが、これらの間にはいくつかの重要な違いがあります。

  1. CA 証明書は認知されたデジタル認証局 (CA) によって発行されますが、自己署名証明書はユーザー自身によって作成されます。CA は Certificate Authority の略で、「Certificate Authorization Center」とも呼ばれます。

  2. CA 証明書は、当局によって信頼され、規制されているため、より安全です。自己署名証明書のセキュリティは、ユーザーのスキルとプロセスに依存します。

  3. CA 証明書は多くのブラウザーやオペレーティング システムによってすでに信頼されているため、パブリック ネットワークや Web サイトで使用できます。自己署名証明書は、プライベート ネットワーク上またはテスト目的でのみ使用してください。

  4. CA 証明書は有料ですが、自己署名証明書は無料です。

全体として、パブリック ネットワーク上で Web サイトまたはアプリケーションを実行する必要がある場合は、CA 証明書をお勧めします。プライベート ネットワーク上で通信またはテストを暗号化する必要があるだけの場合は、自己署名証明書を使用できます。

OpenSSL をインストールする

OpenSSL インストール パッケージをダウンロードする

https://slproweb.com/products/Win32OpenSSL.html に移動して、Win OpenSSL インストール パッケージをダウンロードします。

exe と msi のいずれかを選択できます。ライト バージョンは軽量バージョンであり、フル バージョンを直接ダウンロードすることに注意してください。

画像-20230620164808956

ダウンロードは Win64OpenSSL_Light-3_1_1.msi です。

インストール

ほとんどのインストール プロセスはデフォルトで選択できます。

OpenSSL DLL をWindows/System/次のディレクトリまたはbinインストール ディレクトリのディレクトリにインストールすることを選択する場合、binシステム ディレクトリ内の他のソフトウェアの DLL が OpenSSL に影響を与えないようにディレクトリを選択することに注意してください。

画像-20230620165052362

他のページで「次へ」をクリックしてインストールを完了します。

最後に、このページでは著者に報酬を与えるかどうかを選択できます。報酬を与えたくない場合は、すべてのチェックを外してください。

画像-20230620165435140

インストールが完了しました。

画像-20230620165641032

環境変数を設定する

システム環境変数にパスを追加する必要もあります。私の場合はC:\Program Files\OpenSSL-Win64\bin

画像-20230620170325508

追加したら、右側にある上へ移動ボタンをクリックして上に移動します。

画像-20230620170443484

変更を保存するだけです。

インストールが正しいことを確認する

cmd を開き、コマンドを入力してバージョンを表示します。

openssl version

画像-20230620170841365

インストールが成功したことがわかります。インストールしたバージョン情報と異なる場合は、コンピューターの再起動が必要になる場合があります。

OpenSSL を使用して自己署名証明書を生成する

SSLフォルダーに移動します

生成された証明書ファイルを保存するための SSL フォルダーを作成します。私のはD:\ssl证书

cmd を開き、SSL フォルダー パスに移動し、コマンド openssl を入力して Enter キーを押します。

D:
cd D:\ssl证书
openssl

画像-20230620172004479

サーバー秘密キー (.key ファイル) を生成します。

次のコマンドを入力してキー ファイルを生成します。

openssl genrsa -des3 -out server.pass.key 2048

4桁以上のパスワードを入力し、再度パスワードを入力してください。図に示すように:

画像-20230621151645656

コマンドは次のように説明されます。

genra: RSA 秘密キーを生成します。
-des3: des3 アルゴリズムを使用します。
-out: 生成されたファイル名を指定します
。 2048: 秘密キーの長さを 2048 に設定します。

画像-20230621151833827

秘密キーからパスフレーズを削除する

openssl rsa -in server.pass.key -out server.key

rsa: RSA 秘密キーを生成する

-in: 入力秘密鍵ファイル

-out: 秘密鍵ファイルを出力します。

パスワードなし: パスワードなしで秘密鍵ファイルを設定します。

次に、server.pass.key のパスワードを入力します。図に示すように:

画像-20230621154021717

画像-20230621154213483

証明書署名要求 (.csr ファイル) の生成

次のコマンドを入力して、証明書署名リクエストを生成します。

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=OrganizeName/OU=UnitName/CN=192.168.0.174"

req: 証明書署名要求を生成します
-new: 新しく生成されました
-key: 秘密鍵ファイル
-out: 生成された CSR ファイルの名前を指定します
-subj: CSR 証明書を生成するためのパラメーター

subj パラメータの説明は次のとおりです。

分野 フルネーム
/C= CN
/ST= State or Province 州/省 浙江省
/L= 場所または都市 都市 杭州
/O= 組織 組織/企業 組織名
/OU= 組織単位部門 ユニット名
/CN= コモンネームドメイン名またはIP www.yourdomain.com または 192.168.xx

画像-20230621162346434

画像-20230621162257265

自己署名SSL証明書(.crtファイル)を生成します。

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

画像-20230621164408154

画像-20230621164506161

-days: 証明書の有効期間

-req: 証明書が必要です

-in: 入力CSRファイル

-signkey: .key ファイルを指定します。

-out: crt ファイルを出力します。

フォルダー内には、server.pass.key、server.key、server.csr、server.crt の合計 4 つのファイルがあります。

このうち、nginxを設定する場合、server.keyとserver.crtの2つのファイルが必要になります。

この時点で、証明書の生成は完了です。

X.509 証明書には 3 つのファイルが含まれています: key、c​​sr、crt
key はサーバー上の秘密鍵ファイルで、クライアントに送信されるデータの暗号化と、クライアントから受信したデータの復号化に使用されます。 csr は証明書署名要求ファイルです
。証明書に署名するために認証局 (CA) に提出するために使用されます。
crt は、認証局 (CA) によって署名された証明書、または開発者による自己署名証明書であり、証明書所有者の情報、所有者の公開キーが含まれています。 、署名者の署名およびその他の情報
備考: X.509 は、暗号化において、公開鍵認証、証明書失効リスト、認可証明書、証明書パス検証アルゴリズムなどを規定する標準です。

画像-20230621170451632

自己署名証明書の使用 (Nginx を例に挙げます)

サーバーからSSL証明書をアップロードします

Web サーバーは、server.crt検証のためにデータをブラウザに送信し、それを使用してserver.keyブラウザから送信されたデータを復号化する必要があります。(残りの 2 つのファイルserver.pass.keyと はserver.csr不要になりました)。

画像-20230626154433703

サーバーはポート 443 を構成し、SSL 証明書を使用します。

Nginx を例として、%你的Nginx安装目录%/conf/nginx.confポート 443 の監視を に追加します。

以下で構成する必要がありますserver{...}:

	server {
		#监听443端口
		listen       443 ssl; 
		server_name  127.0.0.1;
		#ssl证书的crt文件路径
		ssl_certificate     D:\\SSLCertificate\\server.crt;
		#ssl证书的key文件路径
		ssl_certificate_key D:\\SSLCertificate\\server.key;
		#反向代理
		location / {
			root   html;
			index  index.html index.htm;
			proxy_pass  http://127.0.0.1:7001;
			}
	}

画像-20230626155337110

nginx.conf変更が完了したら、次のコマンドを入力してリロードします。

D:
cd D:\Nginx
nginx -s reload

クライアントアクセスhttps

すべてがうまくいけば、ブラウザを開くと、HTTPS 経由で Web サイトにアクセスできます。図に示すように、最初のアクセス時に警告が表示されます (自己署名証明書がブラウザーによって信頼されていないため)。

画像-20230627090738002

方法 1: ブラウザーとオペレーティング システムに独自の認証局を強制的に受け入れる

1 つの方法は、[詳細設定] -> [192.168.xx (安全ではない) に進む] をクリックします。

ブラウザーとオペレーティング システムに独自の認証局を強制的に受け入れることができます。したがって、CA 証明書がインストールされ、信頼できるリストに追加されると、セキュリティ警告は表示されなくなります。

方法 2: ブラウザ/オペレーティング システムに認証局をインストールする

代替方法: CA 証明書を開発チームと共有して、開発チームのブラウザにインストールすることもできます。ブラウザを介して証明書をインポートし、「信頼できる」として設定すると、今後 Web サイトにアクセスするときにコンピュータが Web サーバーに安全に接続できるようになります。

  1. MAC ユーザーはこのガイドを参照してください
  2. Windows ユーザーはこのガイドを参照してください

参考記事

自己署名 SSL 証明書を使用して Nginx を構成する

OpenSSL を使用して自己署名 SSL 証明書を生成する

OpenSSL を使用して自己署名証明書を作成する方法

おすすめ

転載: blog.csdn.net/guigenyi/article/details/131424405
おすすめ