#はじめに
ECDSAでの自己認証局を作成したので、サーバー証明書、クライアント証明書を作成できるが、原理を学ぶため、まず基本の証明書の検証動作を確認する。
#環境
前回作成した環境にて検証を実施
OpenSSL ECDSAでの自己認証局作成
#検証内容
自己認証局の中間CAにて署名したメッセージを検証していく。
ルートCA証明書までの証明書チェーン全体を検証する
#メッセージの作成と中間CAでの署名
中間CAの秘密鍵を使って署名を行う。
echo "123456" > test.txt
openssl dgst -sha256 -sign /etc/pki/AWS/private/icacert.key test.txt > signature.dat
#中間CAの証明書を分析と公開鍵の抜き出し
openssl x509 -in /etc/pki/AWS/icacert.pem -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 2 (0x2)
Signature Algorithm: ecdsa-with-SHA256
Issuer: C=JP, ST=Tokyo, L=<任意>, O=<任意>, OU=<任意>, CN=<ルートCAのCN>
Validity
Not Before: ... 2019 GMT
Not After : ... 2029 GMT
Subject: C=JP, ST=Tokyo, O=<任意>, CN=<中間認証局のCN>
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:63:....
ASN1 OID: prime256v1
NIST CURVE: P-256
X509v3 extensions:
X509v3 Subject Key Identifier:
.....
X509v3 Authority Key Identifier:
.....
X509v3 Basic Constraints:
CA:TRUE, pathlen:0
X509v3 Key Usage:
Digital Signature, Certificate Sign, CRL Sign
Signature Algorithm: ecdsa-with-SHA256
30:45:02:20:......
02:21:......
-----BEGIN CERTIFICATE-----
MIIC....
.....eaNfjfO0
-----END CERTIFICATE-----
上記から中間CA証明書の公開鍵を抜き出す。
openssl x509 -in /etc/pki/AWS/icacert.pem -pubkey -noout
-----BEGIN PUBLIC KEY-----
MFkw...
....==
-----END PUBLIC KEY-----
openssl x509 -in /etc/pki/AWS/icacert.pem -pubkey -noout > icapub.pem
#メッセージの中間CA公開鍵での検証
openssl dgst -sha256 -verify icapub.pem -signature signature.dat test.txt
Verified OK
検証OK
#中間CA証明書のルートCA証明書での検証
openssl verify -CAfile /etc/pki/AWS/cacert.pem /etc/pki/AWS/icacert.pem
/etc/pki/AWS/icacert.pem: OK
組み込みでの証明書チェーンの完全な検証を行うためには中間CA証明書のルートCA証明書での検証のメカニズムも把握する必要がある。また後日。