在 Oracle® Solaris 11.2 中确保网络安全

退出打印视图

更新时间: 2014 年 9 月
 
 

如何在硬件中为 IKEv2 生成和存储公钥证书

公钥证书也可以存储在连接的硬件上。Sun Crypto Accelerator 6000 板会提供存储,并允许将公钥操作从系统分流到板上。

在硬件上生成和存储公钥证书,与在系统上生成和存储公钥证书类似。在硬件上,ikev2cert gencert token=hw-keystore 命令用于标识硬件密钥库。

开始之前

此过程假设 Sun Crypto Accelerator 6000 板已连接到系统。此过程还假定已安装板的软件,而且已配置硬件密钥库。有关说明,请参见 Sun Crypto Accelerator 6000 Board Product Library Documentation(Sun Crypto Accelerator 6000 板产品库文档)。这些说明包括密钥库设置内容。

您必须成为分配有 "Network IPsec Management"(网络 IPsec 管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

如果执行远程管理,请参见Example 7–1在 Oracle Solaris 11.2 中管理安全 Shell 访问 中的如何使用安全 Shell 远程管理 ZFS,了解进行安全远程登录的说明。

  1. 确认您拥有已连接 Sun Crypto Accelerator 6000 板的令牌 ID。
    # pfbash
    # ikev2cert tokens
    
    Flags: L=Login required I=Initialized X=User PIN expired S=SO PIN expired
    Slot ID  Slot Name                         Token Name                        Flags
    -------  ---------                         ----------                        -----
    1        sca6000                           sca6000                           LI
    2        n2cp/0 Crypto Accel Bulk 1.0      n2cp/0 Crypto Accel Bulk 1.0
    3        ncp/0 Crypto Accel Asym 1.0       ncp/0 Crypto Accel Asym 1.0
    4        n2rng/0 SUNW_N2_Random_Number_Ge  n2rng/0 SUNW_N2_RNG
    5        Sun Crypto Softtoken              Sun Software PKCS#11 softtoken    LI
  2. 生成自签名证书或 CSR,并指定令牌 ID。

    注 -  对于 RSA,Sun Crypto Accelerator 6000 板最多支持 2048 位的密钥。对于 DSA,此板最多支持 1024 位的密钥。

    选择以下选项之一:

    • 对于自签名证书,请使用此语法:
      # ikev2cert gencert token=sca6000 keytype=rsa \
      hash=sha256 keylen=2048 \
      subject="CN=FortKnox, C=US" serial=0x6278281232 label=goldrepo
      Enter PIN for sca6000: See Step 3
    • 对于证书签名请求,请使用此语法:
      # ikev2cert gencsr token=sca6000 -i
      > keytype=
      > hash=
      > keylen=
      > subject=
      > serial=
      > label=
      > outcsr=
      Enter PIN for sca6000 token: See Step 3

    有关 ikev2cert 命令参数的说明,请参见 pktool(1) 手册页。

  3. 在系统提示输入 PIN 时,键入 Sun Crypto Accelerator 6000 用户名、冒号和该用户的口令。

    注 -  您必须知道密钥库的用户名和口令。

    如果 Sun Crypto Accelerator 6000 板由口令为 inThe%4ov 的用户 admin 配置,应键入以下内容:

    Enter PIN for sca6000 token: admin:inThe%4ov
    -----BEGIN X509 CERTIFICATE-----
    MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
    …
    oKUDBbZ9O/pLWYGr
    -----END X509 CERTIFICATE-----
  4. 发送您的证书以供对方使用。

    选择以下选项之一:

    • 将自签名证书发送到远程系统。

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

    • 将证书签名请求发送给 CA。

      按 CA 提供的说明提交 CSR。有关更详细的论述,请参见在 IKE 中使用公钥证书

  5. 将证书导入硬件密钥库。

    导入从 CA 收到的证书,并提供Step 5 中的用户和 PIN。

    # ikev2cert import token=sca6000 infile=/tmp/DCA.ACCEL.CERT1
    Enter PIN for sca6000 token: Type user:password
    # ikev2cert import token=sca6000 infile=/tmp/DCA.ACCEL.CA.CERT
    Enter PIN for sca6000 token: Type user:password
  6. 启用自动使用或以交互方式使用硬件密钥库。

    首选自动登录。如果站点安全策略不允许自动登录,必须在重新启动 in.ikev2d 守护进程时以交互方式登录到密钥库。

    • 配置密钥库自动登录。
      1. 将 PIN 添加为 pkcs11_token/uri 服务属性的值。

        有关此属性的说明,请参见IKEv2 服务

        # svccfg -s ike:ikev2 editprop

        此时会打开一个临时编辑窗口。

      2. setprop pkcs11_token/uri = 行取消注释,用以下格式的令牌名称替换括号:
        # setprop pkcs11_token/uri = () Original entry
        setprop pkcs11_token/uri = pkcs11:token=sca6000
      3. setprop pkcs11_token/uri = 行取消注释,用来自Step 5username:PIN 替换括号。
        # setprop pkcs11_token/uri = () Original entry
        setprop pkcs11_token/uri = admin:PIN-from-Step-3
      4. 对文件底部的 refresh 行取消注释,然后保存更改。
        # refresh
        refresh
      5. (u53ef选) 验证 pkcs11_token 属性的值。
        # svccfg -s ikev2 listprop pkcs11_token
        pkcs11_token/pin     astring  username:PIN
        pkcs11_token/uri     astring  pkcs11:token=sca6000
    • 如果未配置自动登录,请手动登录到硬件密钥库。

      每当 in.ikev2d 守护进程启动时运行此命令。

      # pfexec ikeadm -v2 token login sca6000
      Enter PIN for sca6000 token: admin:PIN-from-Step-3
      ikeadm: sca6000 operation successful

接下来的步骤

如果建立 IPsec 策略未完成,请返回到 IPsec 过程以启用或刷新 IPsec 策略。有关保护 VPN 的 IPsec 策略的示例,请参见使用 IPsec 保护 VPN。有关 IPsec 策略的其他示例,请参见如何使用 IPsec 保护两台服务器之间的网络通信