署名付きパッケージを作成するには、先にパッケージキーストアが存在している必要があります。このパッケージキーストアには、証明書がオブジェクトの形式で含まれます。パッケージキーストアには、2 種類のオブジェクトが存在します。
信頼できる証明書には、別のエンティティーに属する単一の公開鍵証明書が含まれます。信頼できる証明書という呼び名は、証明書に含まれる公開鍵が、その証明書の「サブジェクト」(所有者) によって示された本人のものであることを、キーストアの所有者が信頼することに由来しています。この信頼を表明するために、証明書の発行者はその証明書に署名します。
信頼できる証明書は、署名を検証するとき、およびセキュリティー保護されたサーバーへの接続 (SSL) を開始するときに使用されます。
ユーザー鍵は、暗号鍵に関する機密情報を保持します。この情報は、不正なアクセスを防ぐために、セキュリティーが施された形式で格納されます。ユーザー鍵は、ユーザーの非公開鍵と対応する公開鍵証明書から構成されます。
ユーザー鍵は、署名付きパッケージを作成するときに使用されます。
デフォルトでは、パッケージキーストアは /var/sadm/security ディレクトリに格納されます。個別のユーザーも、独自のキーストアをデフォルトで $HOME/.pkg/security ディレクトリに格納できます。
ディスク上でのパッケージキーストアには、2 種類の形式があります。 つまり、複数ファイル形式と単一ファイル形式です。複数ファイル形式は、オブジェクトを複数のファイルに格納します。オブジェクトの種類ごとに、異なるファイルに保存されます。これらのファイルはすべて、同じパスフレーズを使用して暗号化される必要があります。単一ファイルキーストアは、すべてのオブジェクトをファイルシステムの単一のファイルに格納します。
証明書とパッケージキーストアの管理に使用する主なユーティリティは、pkgadm コマンドです。次に、パッケージキーストアの管理に使用される一般的な作業について説明します。
信頼できる証明書をパッケージキーストアに追加するには、pkgadm コマンドを使用します。PEM または DER の形式の証明書を使用できます。次に例を示します。
$ pkgadm addcert -t /tmp/mytrustedcert.pem |
この例では、mytrustedcert.pem という名前の PEM 形式の証明書を、パッケージキーストアに追加します。
pkgadm コマンドは、ユーザー証明書または非公開鍵は生成しません。ユーザー証明書と非公開鍵は、通常、Verisign などの認証局から入手します。または、自己署名付き証明書としてローカルで生成します。入手した鍵と証明書は、pkgadm コマンドを使用してパッケージキーストアにインポートできます。次に例を示します。
pkgadm addcert -n myname -e /tmp/myprivkey.pem /tmp/mypubcert.pem |
この例では、次のオプションを使用しています。
-n myname |
パッケージキーストアに含まれる対象のエンティティー (myname) を特定します。myname エンティティーは、オブジェクトが格納される別名になります。 |
-e /tmp/myprivkey.pem |
非公開鍵を含むファイルを指定します。この場合、ファイルは myprivkey.pem であり、/tmp ディレクトリにあります。 |
/tmp/mypubcert.pem |
mypubcert.pem という名前の PEM 形式の証明書ファイルを指定します。 |
pkgadm コマンドは、パッケージキーストアの内容の表示にも使用します。次に例を示します。
$ pkgadm listcert |
このコマンドは、パッケージキーストアに含まれる信頼できる証明書と非公開鍵を表示します。
pkgadm コマンドを使用すると、信頼できる証明書と非公開鍵をパッケージキーストアから削除できます。
ユーザー証明書を削除するときは、証明書と鍵のペアの別名を指定する必要があります。次に例を示します。
$ pkgadm removecert -n myname |
証明書の別名は証明書の共通名であり、pkgadm listcert コマンドを使用して識別できます。たとえば、次のコマンドは、Trusted CA Cert 1 という名前の信頼できる証明書を削除します。
$ pkgadm removecert -n "Trusted CA Cert 1" |
信頼できる証明書とユーザー証明書を同じ別名で保存した場合は、-n オプションを指定するとどちらも削除されます。