在硬件上生成和存储公钥证书,与在系统上生成和存储公钥证书类似。在硬件上,ikecert certlocal 和 ikecert certdb 命令必须标识硬件。带有标记 ID 的 -T 选项向命令标识硬件。
必须配置硬件。
该硬件使用 /usr/lib/libpkcs11.so 库,除非 /etc/inet/ike/config 文件中的 pkcs11_path 关键字指向其他库。该库必须按照以下标准实现:RSA Security Inc. 推出的 PKCS #11 加密令牌接口 (Cryptographic Token Interface, Cryptoki),即 PKCS #11 库。
有关设置说明,请参见如何将 IKE 配置为查找 Sun Crypto Accelerator 4000 板。
在系统控制台上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
选择以下选项之一:
对于 RSA,Sun Crypto Accelerator 4000 板最多支持 2048 位的密钥。对于 DSA,此板最多支持 1024 位的密钥。
对于自签名证书,请使用此语法。
# ikecert certlocal -ks -m 1024 -t rsa-md5 \ > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \ > -a -T dca0-accel-stor IP=192.168.116.16 Creating hardware private keys. Enter PIN for PKCS#11 token: Type user:password |
-T 选项的参数是来自已连接 Sun Crypto Accelerator 4000 板的标记 ID。
# ikecert certlocal -kc -m 1024 -t rsa-md5 \ > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \ > -a -T dca0-accel-stor IP=192.168.116.16 Creating hardware private keys. Enter PIN for PKCS#11 token: Type user:password |
有关 ikecert 命令的参数的说明,请参见 ikecert(1M) 手册页。
在系统提示输入 PIN 时,键入 Sun Crypto Accelerator 4000 用户、冒号和该用户的口令。
如果 Sun Crypto Accelerator 4000 板具有口令为 rgm4tigt 的用户 ikemgr,应键入以下内容:
Enter PIN for PKCS#11 token: ikemgr:rgm4tigt |
PIN 响应以明文形式存储在磁盘上。
键入口令后,将输出证书内容:
Enter PIN for PKCS#11 token: ikemgr:rgm4tigt -----BEGIN X509 CERTIFICATE----- MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu … oKUDBbZ9O/pLWYGr -----END X509 CERTIFICATE----- |
发送您的证书以供对方使用。
选择以下选项之一:
将自签名证书发送到远程系统。
可以将证书粘贴到电子邮件中。
将证书请求发送到处理 PKI 的组织。
按照 PKI 组织的说明提交证书请求。有关更详细的论述,请参见如何使用 CA 签名的证书配置 IKE中的步骤 3。
在系统上,编辑 /etc/inet/ike/config 文件以识别这些证书。
选择以下选项之一。
使用远程系统管理员为 cert_trust、remote_id 和 remote_addr 参数提供的值。例如,在 enigma 系统上,ike/config 文件的显示与以下信息类似:
# Explicitly trust the following self-signed certs # Use the Subject Alternate Name to identify the cert cert_trust "192.168.116.16" Local system's certificate Subject Alt Name cert_trust "192.168.13.213" Remote system's certificate Subject Alt name # Solaris 10 1/06 release: default path does not have to be typed in #pkcs11_path "/usr/lib/libpkcs11.so" Hardware connection # Solaris 10 release: use this path #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so" … { label "JA-enigmax to US-partym" local_id_type dn local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" local_addr 192.168.116.16 remote_addr 192.168.13.213 p1_xform {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes} } |
证书请求
将 PKI 组织提供的名称作为 cert_root 关键字的值键入。例如,enigma 系统上 ike/config 文件的显示可能与以下信息类似:
# Trusted root cert # This certificate is from Example PKI # This is the X.509 distinguished name for the CA that it issues. cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI" # Solaris 10 1/06 release: default path does not have to be typed in #pkcs11_path "/usr/lib/libpkcs11.so" Hardware connection # Solaris 10 release: use this path #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so" … { label "JA-enigmax to US-partym - Example PKI" local_id_type dn local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" local_addr 192.168.116.16 remote_addr 192.168.13.213 p1_xform {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes} } |
在硬件中存放来自对方的证书。
按照在步骤 3 中作出的响应,响应 PIN 请求。
必须将公钥证书添加到生成私钥的那个连接硬件上。
自签名证书。
添加远程系统的自签名证书。在此示例中,证书存储在 DCA.ACCEL.STOR.CERT 文件中。
# ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT Enter PIN for PKCS#11 token: Type user:password |
如果自签名证书将 rsa_encrypt 用作 auth_method 参数的值,则将对等方的证书添加到硬件存储。
添加组织从证书请求生成的证书,然后添加证书颁发机构 (certificate authority, CA)。
# ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT Enter PIN for PKCS#11 token: Type user:password |
# ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CA.CERT Enter PIN for PKCS#11 token: Type user:password |
要添加来自 PKI 组织的证书撤销列表 (certificate revocation list, CRL),请参见如何处理证书撤销列表。