SSLについて何かを理解しようとするとき、私はいつも “key “と “certificate “が何を指しているのか分からなくて困っています。多くの人がこれらを間違って使っていたり、入れ替えて使っているのではないかと心配しています。鍵と証明書の間には標準的な違いがあるのでしょうか?
172 drs 2013-07-15
証明書には公開鍵が含まれています
証明書には、公開鍵のほかに、発行者、証明書の使用目的、その他のメタデータなどの追加情報が含まれています
通常、証明書は、CA の秘密鍵を使用して、証明書局(CA)によって署名されます。これにより、証明書の真正性が検証されます
164 LawrenceC 2013-07-15
この2枚の写真で全てが分かりました
ソースは以下の通りです。linuxvoice
ソースは以下の通りです。infosecinstitute
104 Andrejs 2017-04-05
会社Aはキーペアを持っていて、公開用の公開鍵を公開する必要があるとします(Webサイト上では別名ssl)
- A 社は、鍵ペアの証明書を取得するために、認証局 (CA) に証明書要求 (CR) を行う必要があります
- A 社の鍵ペアの公開鍵(秘密鍵ではなく)が証明書要求の一部として含まれます
- CA は、次に A 社の ID 情報を使用して、要求が証明書を発行するための CA の基準を満たしているかどうかを判断する。 要するに、CA は A 社の公開鍵に自分の(CA の)秘密鍵を使用して署名し、その真正性を検証する
そのため、有効なCAの秘密鍵で署名されたA社の公開鍵は、A社の証明書と呼ばれています
44 Mohsen Heydari 2015-12-16
例を挙げて説明します
通常の鍵ペアベースのPKIでは、秘密鍵と公開鍵があります
証明書ベースのシステムでは、秘密鍵と証明書があります。証明書は公開鍵よりも多くの情報を保持しています
デモ(証明書と秘密鍵を生成できます)。http://www.selfsignedcertificate.com/
あなたは秘密鍵ファイルと証明書ファイルを開くダウンロードすることができます、あなたは以下に示すように、証明書ファイルには多くの情報が含まれていることがわかります。
生成した証明書(テキストエディタで開く)、秘密鍵(テキストエディタで開く)はこちらのサイトからマッチングできます。https://www.sslshopper.com/certificate-key-matcher.html
証明書がクライアントの秘密鍵と一致する場合、クライアントは、その証明書がクライアントから与えられたか、クライアントの信頼できるエージェント(CA)から与えられたものであることを確認します
しかし、秘密鍵と証明書だけの通信には問題があります
なぜなら、誰でも自分の証明書と秘密鍵を生成することができるので、単純な握手だけでは、サーバが証明書の公開鍵と一致する秘密鍵を知っているということ以外、サーバについて何も証明できないからです。この問題を解決する一つの方法は、クライアントが信頼する一つ以上の証明書のセットを持つことです。もし証明書がセットに入っていなければ、サーバは信頼できません
この単純なアプローチにはいくつかの欠点がある。サーバーは、証明書の公開鍵を新しいものに置き換える「キーローテーション」によって、時間の経過とともにより強力な鍵にアップグレードできるようになるはずです。残念なことに、現在では、本質的にサーバー構成の変更により、クライアントアプリを更新しなければなりません。これは、サーバーがアプリ開発者の管理下にない場合、例えばサードパーティのWebサービスの場合などに特に問題があります。このアプローチは、アプリがウェブブラウザや電子メールアプリのような任意のサーバーと話をしなければならない場合にも問題があります
これらの欠点に対処するために、サーバは通常、認証局(CA)と呼ばれる有名な発行者の証明書を使用して構成されます。サーバと同様に、CAは証明書と秘密鍵を持っています。サーバの証明書を発行する際、CAはその秘密鍵を使用してサーバ証明書に署名します。その後、クライアントは、サーバがプラットフォームに知られたCAによって発行された証明書を持っていることを確認することができます
しかし、いくつかの問題を解決する一方で、CAを使用することは別の問題を導入します。CAは多くのサーバに対して証明書を発行するので、目的のサーバと通信しているかどうかを確認する方法が必要になります。これに対処するために、CA が発行する証明書は、gmail.com のような特定の名前か、*.google.com のようなワイルドカードを使ったホストのセットでサーバを識別します
次の例では、これらの概念をもう少し具体的に説明します。コマンドラインからの以下のスニペットでは、openssl ツールの s_client コマンドが Wikipedia のサーバ証明書情報を見ています。これはHTTPSのデフォルトである443番ポートを指定しています。コマンドはopenssl s_clientの出力をopenssl x509に送ります。具体的には、サーバ名の情報を含むsubjectと、認証局を識別するissuerを要求します
$ openssl s_client -connect wikipedia.org:443 | openssl x509 -noout -subject -issuer
subject= /serialNumber=sOrr2rKpMVP70Z6E9BT5reY008SJEdYv/C=US/O=*.wikipedia.org/OU=GT03314600/OU=See www.rapidssl.com/resources/cps (c)11/OU=Domain Control Validated - RapidSSL(R)/CN=*.wikipedia.org
issuer= /C=US/O=GeoTrust, Inc./CN=RapidSSL CA
RapidSSL CAによって*.wikipedia.orgに一致するサーバーに対して証明書が発行されたことがわかります
ご覧のように、CAからServersに送信されるこの追加情報により、クライアントはサーバーと通信しているかどうかを簡単に知ることができます
11 Uddhav Gautam 2018-05-09
SSL証明書は、ウェブサイトの安全な接続を保証する信頼できる認証局から取得されます。SSL証明書は、通常、認証のロゴとコンピュータに送信されるデータを暗号化し、復号化するために必要な公開鍵が含まれています。SSLキーの機能
セッション中にいくつかのSSLキーを生成することができます。これらの鍵は、コンピュータとの間で送受信される情報を暗号化したり復号化したりするために使用されます
Lifecycle Difference
SSL鍵よりも証明書の方が長持ちします。SSL証明書は認証局から取得するもので、銀行や企業が定期的に更新することができます。一方、SSLキーやセッションキーは、セッション中に一意に生成され、セッションが終了すると破棄されます
3 Shekhar 2013-07-15
では、技術者でない人にもわかるように分解してみましょう
このように考えてください。証明書は銀行の貸金庫のようなものです。そこには多くの重要なものが入っていて、一般的にはあなたの身元を示すものが入っています。証明書には公開鍵があり、それを開くには秘密鍵が必要です
貸金庫も証明書と同じように、開けるのに2つの鍵が必要です。 貸金庫の場合、銀行員の鍵は銀行に保管され、公開鍵は証明書と一緒に保管されるので、公開鍵のようなものです。貸金庫の例では、公開鍵の他に秘密鍵も必要になります
実際に貸金庫を開ける前に、まず身元を確認しなければなりません(証明書要求のようなもの)。これは、証明書要求を行い、認証局から証明書を取得するようなものです (本人確認ができ (信頼できる)、正しい鍵を持っていれば)
2 lwood 2016-05-12