使用公钥证书,通信系统就无需在带外共享秘密的加密材料。与预先共享的密钥不同,公钥证书可以在移动机器或可能重新编号的系统上使用。
公钥证书也可以存储在连接的硬件上。有关过程,请参见将 IKE 配置为查找连接的硬件(任务列表)。
自签名证书比 CA 颁发的公共证书所需的开销少,但不太易于扩展。
在系统控制台上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
将自签名证书添加到 ike.privatekeys 数据库。
# ikecert certlocal -ks|-kc -m keysize -t keytype \ -D dname -A altname \ [-S validity-start-time] [-F validity-end-time] [-T token-ID] |
创建自签名证书。
创建证书请求。有关过程,请参见如何使用 CA 签名的证书配置 IKE。
是密钥的大小。keysize 可以是 512、1024、2048、3072 或 4096。
指定要使用的算法类型。keytype 可以是 rsa-sha1、rsa-md5 或 dsa-sha1。
是证书主题的 X.509 标识名。dname 通常具有以下格式: C=country, O=organization, OU=organizational unit, CN=common name。有效标记是 C、O、OU 和 CN。
是证书的替代名称。altname 的形式为 tag=value。有效标记是 IP、DNS、email 和 DN。
为证书提供绝对或相对有效开始时间。
为证书提供绝对或相对有效结束时间。
启用 PKCS #11 硬件标记来生成密钥。然后证书将被存储在硬件中。
例如,partym 系统上命令的显示与以下信息类似:
# ikecert certlocal -ks -m 1024 -t rsa-md5 \ -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \ -A IP=192.168.13.213 Creating software private keys. Writing private key to file /etc/inet/secret/ike.privatekeys/0. Enabling external key providers - done. Acquiring private keys for signing - done. Certificate: Proceeding with the signing operation. Certificate generated successfully (…/publickeys/0) Finished successfully. Certificate added to database. -----BEGIN X509 CERTIFICATE----- MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX … 6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU -----END X509 CERTIFICATE----- |
enigma 系统上命令的显示与以下信息类似:
# ikecert certlocal -ks -m 1024 -t rsa-md5 \ -D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \ -A IP=192.168.116.16 Creating software private keys. … Certificate added to database. -----BEGIN X509 CERTIFICATE----- MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV … jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A== -----END X509 CERTIFICATE----- |
保存证书并将它发送到远程系统。
可以将证书粘贴到电子邮件中。
例如,将以下 partym 证书发送给 enigma 管理员:
To: admin@ja.enigmaexample.com From: admin@us.partyexample.com Message: -----BEGIN X509 CERTIFICATE----- MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX … 6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU -----END X509 CERTIFICATE----- |
enigma 管理员将向您发送以下 enigma 证书:
To: admin@us.partyexample.com From: admin@ja.enigmaexample.com Message: -----BEGIN X509 CERTIFICATE----- MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV … jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A== -----END X509 CERTIFICATE----- |
向其他管理员核实证书是否来自该管理员。
例如,可以给其他管理员打电话,以比较公钥散列的值。在这两个系统上,共享证书的公钥散列必须是相同的。
例如,在 partym 系统上,公共证书位于插槽 1 中,而专用证书位于插槽 0 中。
partym # ikecert certdb -l Certificate Slot Name: 0 Type: rsa-md5 Private Key Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym> Key Size: 1024 Public key hash: B2BD13FCE95FD27ECE6D2DCD0DE760E2 Certificate Slot Name: 1 Type: rsa-md5 Public Certificate (Private key in certlocal slot 0) Points to certificate's private key Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax> Key Size: 1024 Public key hash: 2239A6A127F88EE0CB40F7C24A65B818 |
将此值与 enigma 系统上的公钥散列进行比较。
您可通过电话读取公钥散列。
enigma # ikecert certdb -l Certificate Slot Name: 4 Type: rsa-md5 Private Key Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax> Key Size: 1024 Public key hash: DF3F108F6AC669C88C6BD026B0FCE3A0 Certificate Slot Name: 5 Type: rsa-md5 Public Certificate (Private key in certlocal slot 4) Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym> Key Size: 1024 Public key hash: 2239A6A127F88EE0CB40F7C24A65B818 |
编辑 /etc/inet/ike/config 文件以识别证书。
远程系统的管理员提供 cert_trust、remote_addr 和 remote_id 参数的值。
例如,在 partym 系统上,ike/config 文件的显示与以下信息类似:
# Explicitly trust the following self-signed certs # Use the Subject Alternate Name to identify the cert # Verified remote address and remote ID # Verified public key hash per telephone call from administrator cert_trust "192.168.13.213" Local system's certificate Subject Alt Name cert_trust "192.168.116.16" Remote system's certificate Subject Alt Name ## Parameters that may also show up in rules. p1_xform { auth_method preshared oakley_group 5 auth_alg sha encr_alg des } p2_pfs 5 { label "US-partym to JA-enigmax" local_id_type dn local_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" local_addr 192.168.13.213 remote_addr 192.168.116.16 p1_xform {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes} } |
在 enigma 系统上,在 ike/config 文件中添加本地参数的 enigma 值。
对于远程参数,请使用 partym 值。确保 label 关键字的值是唯一的。此值必须与远程系统的 label 值不同。
… { 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 … |
在此示例中,管理员使用主题名称来验证这些证书是否相同。
第一个管理员将生成和列出证书的输出保存到一个文件中。由于 ikecert 命令的输出列显到标准错误,因此管理员会将标准错误重定向到该文件。
sys1# cd / sys1# ikecert certlocal -ks -m1024 -t rsa-md5 \ -D"C=US, O=TestCo, CN=Co2Sys" 2>/tmp/for_co2sys Certificate added to database. sys1# ikecert certdb -l "C=US, O=TestCo, CN=Co2Sys" 2>>/tmp/for_co2sys |
管理员验证该文件的内容。
sys1# cat /tmp/for_co2sys Creating private key. -----BEGIN X509 CERTIFICATE----- MIIB7TCCAVagAwIBAgIEZkHfOTANBgkqhkiG9w0BAQQFADAxMQwwCgYDVQQGEwNV U0ExEDAOBgNVBAoMB3Rlc3RfY28xDzANBgNVBAMTBkVuaWdtYTAeFw0wODAxMTUx OTI1MjBaFw0xMjAxMTUxOTI1MjBaMDExDDAKBgNVBAYTA1VTQTEQMA4GA1UECgwH dGVzdF9jbzEPMA0GA1UEAxMGRW5pZ21hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB iQKBgQCPxGv0rUzHMnFtkx9uwYuPiWbftmWfa9iDt6ELOEuw3zlboy2qtuRUZohz FIbCxAJevdCY6a+pktvYy3/2nJL0WATObO5T0FKn3F0bphajinLYbyCrYhEzD9E2 gkiT2D9/ttbSiMvi9usphprEDcLAFaWgCJiHnKPBEkjC0vhA3wIDAQABoxIwEDAO BgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEAL/q6xgweylGQylqLCwzN 5PIpjfzsNPf3saTyh3VplwEOW6WTHwRQT17IO/1Oc6Jnz9Mr0ZrbHWDXq+1sx180 F8+DMW1Qv1UR/lGMq3ufDG3qedmSN6txDF8qLlPCUML0YL8m4oGdewqGb+78aPyE Y/cJRsK1hWbYyseqcIkjj5k= -----END X509 CERTIFICATE----- Certificate Slot Name: 2 Key Type: rsa (Private key in certlocal slot 2) Subject Name: <C=US, O=TestCo, CN=Co2Sys> Key Size: 1024 Public key hash: C46DE77EF09084CE2B7D9C70479D77FF |
然后,管理员通过电子邮件将该文件发送给第二个管理员。
第二个管理员将该文件放在安全目录中,并从该文件导入证书。
sys2# cd / sys2# ikecert certdb -a < /sec/co2sys |
ikecert 命令只导入 -----BEGIN 和 -----END 行之间的文字。管理员验证本地证书的公钥散列是否与 co2sys 文件中的公钥散列相同。
sys2# ikecert certdb -l Certificate Slot Name: 1 Key Type: rsa (Private key in certlocal slot 1) Subject Name: <C=US, O=TestCo, CN=Co2Sys> Key Size: 1024 Public key hash: C46DE77EF09084CE2B7D9C70479D77FF |
为确保第一个管理员发送了此电子邮件,第二个管理员会给第一个管理员打电话,以验证证书的主题名称。
在此示例中,由 partym 系统上的管理员建立证书有效日期。该证书可回溯 2 1/2 天,自创建之日起 4 年零 6 个月内有效。
# ikecert certlocal -ks -m 1024 -t rsa-md5 \ -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \ -A IP=192.168.13.213 \ -S -2d12h -F +4y6m |
由 enigma 系统上的管理员建立证书有效日期。该证书可回溯 2 天,在 2010 年 12 月 31 号子夜前有效。
# ikecert certlocal -ks -m 1024 -t rsa-md5 \ -D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \ -A IP=192.168.116.16 \ -S -2d -F "12/31/2010 12:00 AM" |
证书颁发机构 (CA) 颁发的公共证书需要与外部组织进行协商。证书很容易扩展为保护大量通信系统。
在系统控制台上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
使用 ikecert certlocal -kc 命令创建证书请求。
有关该命令的参数的说明,请参见如何使用自签名的公钥证书配置 IKE中的步骤 2。
# ikecert certlocal -kc -m keysize -t keytype \ -D dname -A altname |
例如,以下命令在 partym 系统上创建证书请求:
# ikecert certlocal -kc -m 1024 -t rsa-md5 \ > -D "C=US, O=PartyCompany\, Inc., OU=US-Partym, CN=Partym" \ > -A "DN=C=US, O=PartyCompany\, Inc., OU=US-Partym" Creating software private keys. Writing private key to file /etc/inet/secret/ike.privatekeys/2. Enabling external key providers - done. Certificate Request: Proceeding with the signing operation. Certificate request generated successfully (…/publickeys/0) Finished successfully. -----BEGIN CERTIFICATE REQUEST----- MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w … lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X -----END CERTIFICATE REQUEST----- |
以下命令在 enigma 系统上创建证书请求:
# ikecert certlocal -kc -m 1024 -t rsa-md5 \ > -D "C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax, CN=Enigmax" \ > -A "DN=C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax" Creating software private keys. … Finished successfully. -----BEGIN CERTIFICATE REQUEST----- MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu … 8qlqdjaStLGfhDOO -----END CERTIFICATE REQUEST----- |
将证书请求提交到 PKI 组织。
PKI 组织可以告诉您如何提交证书请求。大多数组织具有包含提交表单的 Web 站点。该表单要求证明提交是合法的。通常,将证书请求粘贴到表单中。组织在检查您的请求后,将向您发出以下两个证书对象和已撤销证书的列表:
公钥证书-此证书基于您提交给组织的请求。所提交的请求是此公钥证书的一部分。证书可对您进行唯一标识。
证书颁发机构-组织的签名。CA 检验公钥证书是否合法。
证书撤销列表 (Certificate Revocation List, CRL)-组织已撤销的证书的最新列表。如果在公钥证书中嵌入对 CRL 的访问,则不会将 CRL 作为证书对象单独发送。
在公钥证书中嵌入 CRL 的 URI 时,IKE 可以自动检索 CRL。同样,在公钥证书中嵌入 DN(LDAP 服务器上的目录名称)项时,IKE 可以从指定的 LDAP 服务器检索并高速缓存 CRL。
有关公钥证书中的嵌入式 URI 和嵌入式 DN 项的示例,请参见如何处理证书撤销列表。
ikecert certdb -a 的 -a 选项将已粘贴的对象添加到系统上的适当证书数据库。有关更多信息,请参见IKE,使用公钥证书。
在系统控制台上,承担主管理员角色或成为超级用户。
添加从 PKI 组织收到的公钥证书。
# ikecert certdb -a Press the Return key Paste the certificate: -----BEGIN X509 CERTIFICATE----- … -----END X509 CERTIFICATE---- Press the Return key <Control>-D |
添加来自 PKI 组织的 CA。
# ikecert certdb -a Press the Return key Paste the CA: -----BEGIN X509 CERTIFICATE----- … -----END X509 CERTIFICATE---- Press the Return key <Control>-D |
如果 PKI 组织已发送撤销证书列表,则将 CRL 添加到 certrldb 数据库:
# ikecert certrldb -a Press the Return key Paste the CRL: -----BEGIN CRL----- … -----END CRL---- Press the Return key <Control>-D |
在 /etc/inet/ike/config 文件中使用 cert_root 关键字标识 PKI 组织。
使用 PKI 组织提供的名称。
例如,partym 系统上 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" ## Parameters that may also show up in rules. p1_xform { auth_method rsa_sig oakley_group 1 auth_alg sha1 encr_alg des } p2_pfs 2 { label "US-partym to JA-enigmax - Example PKI" local_id_type dn local_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" local_addr 192.168.13.213 remote_addr 192.168.116.16 p1_xform {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes} } |
auth_method 参数的所有变量都必须在同一行上。
在 enigma 系统上,创建一个类似的文件。
具体而言,enigma 的 ike/config 文件应该满足以下要求:
包括相同的 cert_root 值。
对于本地参数,使用 enigma 值。
对于远程参数,使用 partym 值。
为 label 关键字创建唯一值。此值必须与远程系统的 label 值不同。
… cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI" … { 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 … |
选择适当的选项:
未提供 CRL
如果 PKI 组织未提供 CRL,则将关键字 ignore_crls 添加到 ike/config 文件。
# Trusted root cert … cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example,… ignore_crls … |
ignore_crls 关键字指示 IKE 不搜索 CRL。
提供了 CRL
如果 PKI 组织提供了 CRL 的中心分发点,则可以修改 ike/config 文件以指向该位置。
有关示例,请参见如何处理证书撤销列表。
在 ike/config 文件中使用 auth_method rsa_encrypt 时,必须将对等方的证书添加到 publickeys 数据库。
将证书发送给远程系统的管理员。
可以将证书粘贴到电子邮件中。
例如,partym 管理员将发送以下电子邮件:
To: admin@ja.enigmaexample.com From: admin@us.partyexample.com Message: -----BEGIN X509 CERTIFICATE----- MII… ----END X509 CERTIFICATE----- |
enigma 管理员将发送以下电子邮件:
To: admin@us.partyexample.com From: admin@ja.enigmaexample.com Message: -----BEGIN X509 CERTIFICATE----- MII … -----END X509 CERTIFICATE----- |
在每个系统上,将通过电子邮件发送的证书添加到本地 publickeys 数据库。
# ikecert certdb -a Press the Return key -----BEGIN X509 CERTIFICATE----- MII… -----END X509 CERTIFICATE----- Press the Return key <Control>-D |
RSA 加密的验证方法可防止窃听者知道 IKE 中的标识。由于 rsa_encrypt 方法隐藏对等方的标识,IKE 无法检索对等方的证书。因此,rsa_encrypt 方法要求 IKE 对等方知道彼此的公钥。
所以,在 /etc/inet/ike/config 文件中使用 rsa_encrypt 的 auth_method 时,必须将对等方的证书添加到 publickeys 数据库。添加证书后,publickeys 数据库包含每对通信系统的三个证书:
您的公钥证书
CA 证书
对等方的公钥证书
疑难解答-IKE 有效负荷(它包括这三个证书)可能变得过大而无法由 rsa_encrypt 加密。诸如“授权失败”和“有效负荷格式错误”之类的错误,可以指明 rsa_encrypt 方法无法对总有效负荷进行加密。使用仅需要两个证书的方法(如 rsa_sig)来减小有效负荷的大小。
在硬件上生成和存储公钥证书,与在系统上生成和存储公钥证书类似。在硬件上,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),请参见如何处理证书撤销列表。
证书撤销列表 (certificate revocation list, CRL) 包含来自证书颁发机构的过时证书或已损坏证书。CRL 的处理方式有四种。
如果 CA 组织未发出 CRL,则您必须指示 IKE 忽略 CRL。如何使用 CA 签名的证书配置 IKE的步骤 6 中显示了此选项。
可以指示 IKE 从一个 URI(uniform resource indicator,统一资源指示符)访问 CRL,该 URI 的地址嵌入到来自 CA 的公钥证书中。
可以指示 IKE 从 LDAP 服务器访问 CRL,该服务器的 DN(directory name,目录名称)项嵌入到来自 CA 的公钥证书中。
可以将 CRL 作为 ikecert certrldb 命令的参数提供。有关示例,请参见示例 23–7。
以下过程介绍如何指示 IKE 从中心分发点使用 CRL。
# ikecert certdb -lv certspec |
列出 IKE 证书数据库中的证书。
以详细模式列出证书。应谨慎使用此选项。
是一种与 IKE 证书数据库中的证书匹配的模式。
例如,以下证书是由 Sun Microsystems 颁发的。详细信息已更改。
# ikecert certdb -lv example-protect.sun.com Certificate Slot Name: 0 Type: dsa-sha1 (Private key in certlocal slot 0) Subject Name: <O=Sun Microsystems Inc, CN=example-protect.sun.com> Issuer Name: <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc> SerialNumber: 14000D93 Validity: Not Valid Before: 2002 Jul 19th, 21:11:11 GMT Not Valid After: 2005 Jul 18th, 21:11:11 GMT Public Key Info: Public Modulus (n) (2048 bits): C575A…A5 Public Exponent (e) ( 24 bits): 010001 Extensions: Subject Alternative Names: DNS = example-protect.sun.com Key Usage: DigitalSignature KeyEncipherment [CRITICAL] CRL Distribution Points: Full Name: URI = #Ihttp://www.sun.com/pki/pkismica.crl#i DN = <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc> CRL Issuer: Authority Key ID: Key ID: 4F … 6B SubjectKeyID: A5 … FD Certificate Policies Authority Information Access |
请注意 CRL Distribution Points 项。URI 项指示此组织的 CRL 在 Web 上是可用的。DN 项指示 CRL 在 LDAP 服务器上是可用的。在 IKE 访问 CRL 后,将高速缓存该 CRL 以供将来使用。
要访问 CRL,您需要到达分发点。
选择以下方法之一从中心分发点访问 CRL。
将关键字 use_http 添加到主机的 /etc/inet/ike/config 文件。例如,ike/config 文件的显示与以下信息类似:
# Use CRL from organization's URI use_http … |
将关键字 proxy 添加到 ike/config 文件。proxy 关键字将 URL 用作参数,如下所示:
# Use own web proxy proxy "http://proxy1:8080" |
在主机的 /etc/inet/ike/config 文件中,将 LDAP 服务器指定为 ldap-list 关键字的参数。您的组织提供 LDAP 服务器的名称。ike/config 文件中项的显示与以下信息类似:
# Use CRL from organization's LDAP ldap-list "ldap1.sun.com:389,ldap2.sun.com" … |
在证书到期之前,IKE 检索并高速缓存 CRL。
如果无法从中心分发点获取 PKI 组织的 CRL,则可以将该 CRL 手动添加到本地 certrldb 数据库。按照 PKI 组织的说明将 CRL 提取到文件中,然后使用 ikecert certrldb -a 命令将此 CRL 添加到数据库。
# ikecert certrldb -a < Sun.Cert.CRL |