ホーム テクノロジー セキュリティ 非公開: 実世界で役立つ 21 の OpenSSL の例

実世界で役立つ 21 の OpenSSL の例

OpenSSL を使用した SSL 証明書の作成、管理、変換

SSL 証明書 を作成 変換 管理する ための SSL で最も一般的なコマンドの 1 つは OpenSSL です。

さまざまな方法で OpenSSL に対処しなければならない状況がたくさんあります。ここでは、それらを便利なチートシートとしてリストしました。

この記事では、実際の世界で役立つ、頻繁に使用される OpenSSL コマンドについて説明します。

証明書に関連する略語の一部。

  • SSL – セキュアソケットレイヤー
  • CSR – 証明書署名リクエスト
  • TLS – トランスポート層セキュリティ
  • PEM – プライバシー強化メール
  • DER – 区別されたエンコーディング ルール
  • SHA – 安全なハッシュ アルゴリズム
  • PKCS – 公開鍵暗号化標準

: 用語に詳しくない場合は、 SSL/TLS 操作コース が役立ちます。

実世界で役立つ 21 の OpenSSL の例
実世界で役立つ 21 の OpenSSL の例

新しい秘密キーと証明書署名リクエストを作成する

 openssl req -out .csr -newkey rsa:2048 -nodes -keyout .key 

上記のコマンドは、CSR と 2048 ビット RSA キー ファイルを生成します。この証明書を Apache または Nginx で使用する場合は、この CSR ファイルを証明書発行局に送信する必要があります。発行局は、ほとんどが der または pem 形式で署名された証明書を提供します。これを Apache または Nginx Web サーバーで構成する必要があります。 。

実世界で役立つ 21 の OpenSSL の例
実世界で役立つ 21 の OpenSSL の例

自己署名証明書を作成する

 openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem 

上記のコマンドは、2048 ビット RSA を使用して自己署名証明書とキー ファイルを生成します。現時点で最も安全であると考えられている sha256 も含めました。

ヒント: デフォルトでは、1 か月間のみ有効な自己署名証明書が生成されるため、有効期間を延長するために –days パラメーターを定義することを検討してください。

例: 2 年間有効な自己署名を付ける。

 openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem 
実世界で役立つ 21 の OpenSSL の例
実世界で役立つ 21 の OpenSSL の例

CSRファイルを検証する

 openssl req -noout -text -in .csr 

必要な詳細情報を含む CSR を発行者当局に送信していることを確認するには、検証が不可欠です。

実世界で役立つ 21 の OpenSSL の例
実世界で役立つ 21 の OpenSSL の例

RSA秘密キーの作成

 openssl genrsa -out private.key 2048 

RSA 秘密キーを生成するだけの場合は、上記のコマンドを使用できます。暗号化を強化するために 2048 を含めました。

実世界で役立つ 21 の OpenSSL の例
実世界で役立つ 21 の OpenSSL の例

キーからパスフレーズを削除

 openssl rsa -in certkey.key -out nopassphrase.key 

キー ファイルにパスフレーズを使用し、Apache を使用している場合は、起動するたびにパスワードを入力する必要があります。パスワードを入力するのが面倒な場合は、上記の openssl rsa -in .key -check を使用して、既存のキーからパスフレーズ キーを削除できます。

秘密キーの検証

 openssl rsa -in certkey.key –check 

キー ファイルに疑問がある場合は、上記のコマンドを使用して確認できます。

証明書ファイルの検証

 openssl x509 -in certfile.pem -text –noout 

CN、OU などの証明書データを検証したい場合は、証明書の詳細を取得する上記のコマンドを使用できます。

証明書署名者の認証局を確認する

 openssl x509 -in certfile.pem -noout -issuer -issuer_hash 

証明書発行機関はすべての証明書に署名し、必要に応じて証明書を確認します。

証明書のハッシュ値を確認する

 openssl x509 -noout -hash -in bestflare.pem 

DERをPEM形式に変換する

 openssl x509 –inform der –in sslcert.der –out sslcert.pem 

通常、認証局は .der 形式で SSL 証明書を提供しますが、Apache または .pem 形式で使用する必要がある場合は、上記のコマンドが役に立ちます。

PEM を DER 形式に変換する

 openssl x509 –outform der –in sslcert.pem –out sslcert.der 

.pem 形式を .der に変更する必要がある場合

証明書と秘密キーを PKCS#12 形式に変換する

 openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem 

Java アプリケーションまたは PKCS#12 形式のみを受け入れるその他のアプリケーションで証明書を使用する必要がある場合は、上記のコマンドを使用できます。これにより、証明書とキー ファイルを含む単一の pfx が生成されます。

ヒント: 以下のように –chain を渡すことでチェーン証明書を含めることもできます。

 openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem 

既存の秘密キーを使用して CSR を作成する

 openssl req –out certificate.csr –key existing.key –new 

既存の秘密キーを使用する代わりに新しい秘密キーを作成したくない場合は、上記のコマンドを使用できます。

PKCS12形式の証明書の内容を確認する

 openssl pkcs12 –info –nodes –in cert.p12 

PKCS12 はバイナリ形式であるため、メモ帳や他のエディタでコンテンツを表示することはできません。上記のコマンドは、PKCS12 ファイルの内容を確認するのに役立ちます。

PKCS12 形式を PEM 証明書に変換します

 openssl pkcs12 –in cert.p12 –out cert.pem 

既存の pkcs12 形式を Apache で使用する場合、または pem 形式のみで使用する場合、これは便利です。

特定の URL の SSL 証明書をテストする

 openssl s_client -connect yoururl.com:443 –showcerts 

私はこれをサーバーからの特定の URL の SSL 証明書を検証するために頻繁に使用します。これは、プロトコル、暗号、証明書の詳細を検証するのに非常に便利です。

OpenSSLのバージョンを調べる

 openssl version 

OpenSSL が安全であることを保証する責任がある場合、おそらく最初に行うべきことの 1 つは、バージョンを確認することです。

PEM ファイル証明書の有効期限を確認する

 openssl x509 -noout -in certificate.pem -dates 

有効性をチェックするために何らかのモニタリングを導入する予定がある場合に役立ちます。 notBefore および notAfter 構文で日付が表示されます。 notAfter は、証明書の有効期限が切れているか、まだ有効であるかを確認するために検証する必要があるものです。

元:

 [root@Chandan opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore =Jul 4 14:02:45 2015 GMT
notAfter =Aug 4 09:46:42 2015 GMT
[root@Chandan opt]# 

SSL URLの証明書の有効期限を確認する

 openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate 

もう 1 つは、SSL 証明書の有効期限をリモートまたは特定の URL で監視することを計画している場合に役立ちます。

元:

 [root@Chandan opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter =Dec 8 00:00:00 2015 GMT 

URL で SSL V2 または V3 が受け入れられるかどうかを確認する

SSL V2を確認するには

 openssl s_client -connect secureurl.com:443 -ssl2 

SSL V3を確認するには

 openssl s_client -connect secureurl.com:443 –ssl3 

TLS 1.0を確認するには

 openssl s_client -connect secureurl.com:443 –tls1 

TLS 1.1を確認するには

 openssl s_client -connect secureurl.com:443 –tls1_1 

TLS 1.2を確認するには

 openssl s_client -connect secureurl.com:443 –tls1_2 

Web サーバーを保護しており、SSL V2/V3 が有効かどうかを検証する必要がある場合は、上記のコマンドを使用できます。アクティブ化すると、「 CONNECTED 」が表示され、それ以外の場合は「 ハンドシェイク失敗 」が表示されます。

特定の暗号が URL で受け入れられるかどうかを確認する

 openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443 

セキュリティの調査結果に取り組んでおり、侵入テストの結果で弱い暗号の一部が受け入れられたことが示された場合は、検証するために上記のコマンドを使用できます。

もちろん、テストする暗号と URL を変更する必要があります。前述の暗号が受け入れられると、「 CONNECTED 」が表示され、それ以外の場合は「 ハンドシェイク失敗 」が表示されます。

上記のコマンドが、Web サイトの SSL 証明書を管理するための OpenSSL についてさらに理解するのに役立つことを願っています。

「実世界で役立つ 21 の OpenSSL の例」についてわかりやすく解説!絶対に観るべきベスト2動画

シンプルなのにハイスペックな小型MS -LCMS-2050- 開発篇
SSHCA: 証明書利用による安全性と利便性を両立したサーバログイン -日本語版-