8bit.samurai

ネットワーク屋さんの戯れ言

certificate.101

お久しぶりです。

最近MHWのせいで全然書けてない。

憎き自分の心の弱さw

今日は証明書について諸々と基本的な事を…

ざっくりと仕組みから

デジタル証明書って何ですか?:サーバーがクライアントに提供するもので、”私は本当に〇〇です”という証明になるもの。パブリックネットワークでは一般的にCA(公的に認められている公認局)がサーバーに対して発行しているデジタル証明書が使用される。公認局を挟まないデジタル証明書も存在し(Self-signedの証明書)、それは主にインターナルネットワーク(社内のみ等)に使われる。

それってどうやって機能するの?:事前にサーバー側が、CAに対して必要な情報と公開鍵を送付→CAが証明書を発行し、それにデジタル署名を行う→サーバー上でアクセスに対して証明書を有効にする→クライアントがサーバーにアクセス要求をした場合、サーバー側でデジタル証明書を提示する→CAでデジタル署名を行っているため、クライアント側でもCAの公開鍵でこれが正当な物なのか確認することが可能

詳しくはこちら:
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

次は証明書において一般的に使用されているフォーマット・エンコード方法:

エンコーディング
DER:バイナリ方式によるエンコード
PEM:ASCII(Base64)方式のエンコード…-----BEGIN CERT...で始まる

形式:

CRT:一般的な証明書のフォーマット
CER:MS用のフォーマット
KEY:公開鍵も秘密鍵もKEYフォーマットを使う

PFX:PKCS12で定められたアーカイビングフォーマット

OpenSSL関連:

#CRTの情報を確認
openssl x509 -in hogehoge.crt -text -noout

#CRTの有効期限を確認
openssl x509 -in hogehoge.crt -noout -enddate

#CRTの正当性を確認
openssl verify hogehoge.crt

#PFXへの変換
openssl pkcs12 -export -out secure-dayo.pfx -inkey kagidayo.key -in shoumeishodayo.crt

デジタル証明書って、セオリー自体は色々と調べれば調べるほどわけがわからなくなるんですよね。

Have a great week!