2008年3月3日月曜日

.cer ファイルのフォーマットについて

公開鍵をエクスポートする際には、幾つかの形式が選択可能ですが、注意が必要なケースも存在します。

Microsoft の [Control Panel] - [Intrenet Options] - [Content] - [Certificates] で起動される Certificates ダイアログでは Windows レジストリに登録されているユーザストアおよびマシンストアに格納されている証明書のエクスポートをサポートしています。この機能は Certificate Export Wizard で処理されますがこのウィザードでは
  1. DER エンコードの X.509 バイナリファイル
  2. (上記を) Base64 エンコードしたファイル

が共に .cer という拡張子になります。

通常は .cer は前者 (X.509 DER 形式) を指し、後者 (X.509 PEM 形式) に対しては .pem という拡張子を付与するようです。大抵のソフトウェアではファイル書式を自動判別してこれが問題となることは無いようになっているようですが、万一お使いのソフトウェアが .cer ファイルを正しく読み込めない場合は、.cer と .pem を厳密に区別するタイプのものかもしれません。念のため読み込ませる証明書の書式を確認してみることをお勧めします。そして内容がテキストの場合は、拡張子を .pem に変更して再度読み込ませてみるとうまく行くかもしれません。.pem 形式のファイルは、以下のようなテキストになっています。
-----BEGIN CERTIFICATE-----
MIIBlTCB/6ADAgECAgMBAAAwDQYJKoZIhvcNAQEFBQAwEDEOMAwGA1UEAxMFdGVz
…【中略】…
95NT76nIcgvBVR6Z/Rd1zOLknHV7jKhLxw==
-----END CERTIFICATE-----
弊社製品では公開鍵ファイルの読み込みは AddRecipient(Byte[] publicKey) で行いますが、引数として与えるバイト配列データは .cer のものでも .pem のものでも、いずれも受理するようになっています。

0 件のコメント: