系统管理指南:IP 服务

Procedure如何使用 CA 签名的证书配置 IKE

证书颁发机构 (CA) 颁发的公共证书需要与外部组织进行协商。证书很容易扩展为保护大量通信系统。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 使用 ikecert certlocal -kc 命令创建证书请求。

    有关该命令的参数的说明,请参见如何使用自签名的公钥证书配置 IKE中的步骤 2


    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname
    
    1. 例如,以下命令在 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-----
    2. 以下命令在 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-----
  3. 将证书请求提交到 PKI 组织。

    PKI 组织可以告诉您如何提交证书请求。大多数组织具有包含提交表单的 Web 站点。该表单要求证明提交是合法的。通常,将证书请求粘贴到表单中。组织在检查您的请求后,将向您发出以下两个证书对象和已撤销证书的列表:

    • 公钥证书-此证书基于您提交给组织的请求。所提交的请求是此公钥证书的一部分。证书可对您进行唯一标识。

    • 证书颁发机构-组织的签名。CA 检验公钥证书是否合法。

    • 证书撤销列表 (Certificate Revocation List, CRL)-组织已撤销的证书的最新列表。如果在公钥证书中嵌入对 CRL 的访问,则不会将 CRL 作为证书对象单独发送。

      在公钥证书中嵌入 CRL 的 URI 时,IKE 可以自动检索 CRL。同样,在公钥证书中嵌入 DN(LDAP 服务器上的目录名称)项时,IKE 可以从指定的 LDAP 服务器检索并高速缓存 CRL。

      有关公钥证书中的嵌入式 URI 和嵌入式 DN 项的示例,请参见如何处理证书撤销列表

  4. 将每个证书添加到系统。

    ikecert certdb -a-a 选项将已粘贴的对象添加到系统上的适当证书数据库。有关更多信息,请参见IKE,使用公钥证书

    1. 在系统控制台上,承担主管理员角色或成为超级用户。

    2. 添加从 PKI 组织收到的公钥证书。


      # ikecert certdb -a
      Press the Return key
      Paste the certificate:
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
      
    3. 添加来自 PKI 组织的 CA。


      # ikecert certdb -a
      Press the Return key
      Paste the CA:
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
      
    4. 如果 PKI 组织已发送撤销证书列表,则将 CRL 添加到 certrldb 数据库:


      # ikecert certrldb -a
      Press the Return key
      Paste the CRL:
      -----BEGIN CRL-----
      …
      -----END CRL----
      Press the Return key
      <Control>-D
      
  5. /etc/inet/ike/config 文件中使用 cert_root 关键字标识 PKI 组织。

    使用 PKI 组织提供的名称。

    1. 例如,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 参数的所有变量都必须在同一行上。


    2. enigma 系统上,创建一个类似的文件。

      具体而言,enigmaike/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
      …
  6. 通知 IKE 如何处理 CRL。

    选择适当的选项:

    • 未提供 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 文件以指向该位置。

      有关示例,请参见如何处理证书撤销列表


示例 23–6 配置 IKE 时使用 rsa_encrypt

    ike/config 文件中使用 auth_method rsa_encrypt 时,必须将对等方的证书添加到 publickeys 数据库。

  1. 将证书发送给远程系统的管理员。

    可以将证书粘贴到电子邮件中。

    例如,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-----
  2. 在每个系统上,将通过电子邮件发送的证书添加到本地 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_encryptauth_method 时,必须将对等方的证书添加到 publickeys 数据库。添加证书后,publickeys 数据库包含每对通信系统的三个证书:

疑难解答-IKE 有效负荷(它包括这三个证书)可能变得过大而无法由 rsa_encrypt 加密。诸如“授权失败”和“有效负荷格式错误”之类的错误,可以指明 rsa_encrypt 方法无法对总有效负荷进行加密。使用仅需要两个证书的方法(如 rsa_sig)来减小有效负荷的大小。