openssl コマンドを使用してクライアントの CSR に署名することについて、基本的で明白なことが欠けています。
私は(シミュレートした)2つの組織を持っています.1つは認証局の組織(カリフォルニアに存在する)であり、もう1つはWA州にあるクライアント組織です。
次の手順に従って、openssl コマンドを使用して Linux システムに認証局を作成しました。 http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php
現在、2 つのファイルがあります。1. CA の秘密鍵を含む cakey.pem。このプライベートはパスフレーズにも関連付けられています。2. CA の自己署名証明書を含む cacert.pem
次に、クライアントからのすべての CSR に署名したいと思います。ワシントン州のクライアントから client-csr.pem ファイルが送られてきました。CSR の署名に関するこの man ページと最後の例を読んでいます。http://www.openssl.org/docs/apps/ca.html
試しているコマンドとエラー メッセージは次のとおりです。これらのコマンドを CA のシステムで実行します。このシステムは、cakey.pem (CA の秘密鍵) と cacert.pem (CA の自己署名証明書) を作成したのと同じシステムです。
$ openssl ca -in demoCA/csrs/client-csr.pem -out client-cert.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
The stateOrProvinceName field needed to be the same in the
CA certificate (California) and the request (WA)
問題は、州名が CA 証明書とクライアント CSR の両方で同じでなければならない理由です。
クライアントは「カリフォルニア」にいないため、CSR を作成するときに独自の州名 (WA) を入力します。認証局として、クライアントが実際に WA にあり、CSR ファイルが実際に WA からのものであることを確認しました。この CSR に署名し、証明書をクライアントに返したいと考えています。