JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

管理公钥技术

密钥管理框架实用程序

KMF 策略管理

KMF 密钥库管理

使用密钥管理框架(任务列表)

使用密钥管理框架(任务)

如何使用 pktool gencert 命令创建证书

如何将证书导入密钥库

如何以 PKCS #12 格式导出证书和私钥

如何使用 pktool setpin 命令生成口令短语

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

词汇表

索引

使用密钥管理框架(任务)

本节介绍如何使用 pktool 命令管理公钥对象,例如口令、口令短语、文件、密钥库、证书和 CRL。

如何使用 pktool gencert 命令创建证书

此过程可创建自签名证书,并将该证书存储在 PKCS #11 密钥库中。在此操作过程中,还将创建一个 RSA 公钥/私钥对。私钥与该证书一起存储在密钥库中。

  1. 生成自签名证书。
    % pktool gencert [keystore=keystore] label=label-name \
    subject=subject-DN serial=hex-serial-number
    keystore=keystore

    按公钥对象类型指定密钥库。该值可以是 nsspkcs11ssl。此关键字是可选的。

    label=label-name

    指定颁发者为证书提供的唯一名称。

    subject=subject-DN

    指定证书的标识名。

    serial=hex-serial-number

    指定十六进制格式序列号。证书的颁发者可以选择该序列号,例如 0x0102030405

  2. 验证密钥库的内容。
    % pktool list
    Found number certificates.
    1. (X.509 certificate)
          Label:  label-name
          ID: Fingerprint that binds certificate to private key
          Subject: subject-DN
          Issuer:  distinguished-name
          Serial:  hex-serial-number
    n. ...

    此命令可列出密钥库中的所有证书。在下面的示例中,密钥库只包含一个证书。

示例 15-1 使用 pktool 创建自签名证书

在下面的示例中,My Company 的用户创建了一个自签名证书,并将该证书存储在 PKCS #11 对象的密钥库中。该密钥库最初是空的。如果尚未初始化此密钥库,则软令牌的 PIN 为 changeme

% pktool gencert keystore=pkcs11 label="My Cert" \
subject="C=US, O=My Company, OU=Security Engineering Group, CN=MyCA" \
serial=0x000000001
Enter pin for Sun Software PKCS#11 softtoken:Type PIN for token
% pktool list
Found 1 certificates.
1. (X.509 certificate)
      Label: My Cert
      ID: 12:82:17:5f:80:78:eb:44:8b:98:e3:3c:11:c0:32:5e:b6:4c:ea:eb
      Subject: C=US, O=My Company, OU=Security Engineering Group, CN=MyCA
      Issuer: C=US, O=My Company, OU=Security Engineering Group, CN=MyCA
      Serial: 0x01

如何将证书导入密钥库

此过程介绍如何将包含以 PEM 或原始 DER 编码的 PKI 信息的文件导入密钥库。有关导出过程的信息,请参见示例 15-4

  1. 导入证书。
    % pktool import keystore=keystore infile=infile-name label=label-name
  2. 如果要导入私有 PKI 对象,需要在系统提示时提供口令。
    1. 在提示符下提供文件的口令。

      如果要导入的是私有 PKI 信息(例如 PKCS #12 格式的导出文件),则需要为该文件提供口令。您要导入的文件的创建者会向您提供 PKCS #12 口令。

      Enter password to use for accessing the PKCS12 file:Type PKCS #12 password
    2. 在提示符下键入密钥库的口令。
      Enter pin for Sun Software PKCS#11 softtoken: Type PIN for token
  3. 检验密钥库的内容。
    % pktool list
    Found number certificates.
    1. (X.509 certificate)
          Label:  label-name
          ID: Fingerprint that binds certificate to private key
          Subject: subject-DN
          Issuer:  distinguished-name
          Serial:  hex-serial-number
    2. ...

示例 15-2 将 PKCS #12 文件导入密钥库

在下面的示例中,用户从第三方导入了一个 PKCS #12 文件。pktool import 命令可从 gracedata.p12 文件提取私钥和证书,并将它们存储在用户的首选密钥库中。

% pktool import keystore=pkcs11 infile=gracedata.p12 label=GraceCert
Enter password to use for accessing the PKCS12 file:Type PKCS #12 password
Enter pin for Sun Software PKCS#11 softtoken: Type PIN for token
Found 1 certificate(s) and 1 key(s) in gracedata.p12
% pktool list
Found 1 certificates.
1. (X.509 certificate)
        Label: GraceCert
        ID: 12:82:17:5f:80:78:eb:44:8b:98:e3:3c:11:c0:32:5e:b6:4c:ea:eb
        Subject: C=US, O=My Company, OU=Security Engineering Group, CN=MyCA
        Issuer: C=US, O=My Company, OU=Security Engineering Group, CN=MyCA
        Serial: 0x01

示例 15-3 将 X.509 证书导入密钥库

在下面的示例中,用户将 PEM 格式的 X.509 证书导入用户的首选密钥库。此公共证书不受口令保护。用户的公共密钥库也不受口令保护。

% pktool import keystore=pkcs11 infile=somecert.pem label="TheirCompany Root Cert"
% pktool list
Found 1 certificates.
1. (X.509 certificate)
        Label: TheirCompany Root Cert
        ID: 21:ae:83:98:24:d1:1f:cb:65:5b:48:75:7d:02:47:cf:98:1f:ec:a0
        Subject: C=US, O=TheirCompany, OU=Security, CN=TheirCompany Root CA
        Issuer: C=US, O=TheirCompany, OU=Security, CN=TheirCompany Root CA
        Serial: 0x01

如何以 PKCS #12 格式导出证书和私钥

可以创建一个 PKCS #12 格式的文件,用于将私钥及其关联的 X.509 证书导出到其他系统。对该文件的访问受口令保护。

  1. 找到要导出的证书。
    % pktool list
    Found number certificates.
    1. (X.509 certificate)
          Label:  label-name
          ID: Fingerprint that binds certificate to private key
          Subject: subject-DN
          Issuer:  distinguished-name
          Serial:  hex-serial-number
    2. ...
  2. 导出密钥和证书。

    使用 pktool list 命令生成的密钥库和标签。为导出文件提供文件名。如果文件名包含空格,需要用双引号将其括起来。

    % pktool export keystore=keystore outfile=outfile-name label=label-name
  3. 使用口令保护导出文件。

    在提示符下键入密钥库的当前口令。此时,即会为导出文件创建口令。接收者在导入该文件时必须提供此口令。

    Enter pin for Sun Software PKCS#11 softtoken: Type PIN for token
    Enter password to use for accessing the PKCS12 file:Create PKCS #12 password

    提示 - 将口令与导出文件分开发送。建议的最佳做法是不通过发送数据来提供口令,例如通过打电话。


示例 15-4 以 PKCS #12 格式导出证书和私钥

在下面的示例中,用户将私钥及其关联的 X.509 证书导出到一个标准的 PKCS #12 文件中。可将此文件导入到其他密钥库中。PKCS #11 口令可保护源密钥库。PKCS #12 口令用于保护 PKCS #12 文件中的私有数据。导入该文件时需要提供此口令。

% pktool list
Found 1 certificates.
1. (X.509 certificate)
      Label: My Cert
      ID: 12:82:17:5f:80:78:eb:44:8b:98:e3:3c:11:c0:32:5e:b6:4c:ea:eb
      Subject: C=US, O=My Company, OU=Security Engineering Group, CN=MyCA
      Issuer: C=US, O=My Company, OU=Security Engineering Group, CN=MyCA
      Serial: 0x01
% pktool export keystore=pkcs11 outfile=mydata.p12 label="My Cert"
Enter pin for Sun Software PKCS#11 softtoken: Type PIN for token
Enter password to use for accessing the PKCS12 file:Create PKCS #12 password

然后,用户打电话给接收者,提供 PKCS #12 口令。

如何使用 pktool setpin 命令生成口令短语

可以为密钥库中的对象以及密钥库本身生成口令短语。访问该对象或密钥库时需要提供此口令短语。有关为密钥库中的对象生成口令短语的示例,请参见示例 15-4

  1. 生成访问密钥库所用的口令短语。
    % pktool setpin keystore=nss|pkcs11 dir=directory
  2. 应答提示。

    如果尚未为密钥库设置口令,请按回车键创建口令。

    Enter current token passphrase:Press the Return key
    Create new passphrase:Type the passphrase that you want to use
    Re-enter new passphrase:Retype the passphrase
    Passphrase changed.

    密钥库现在受口令短语保护了。如果丢失了口令短语,您将无法访问该密钥库中的对象。

示例 15-5 使用口令短语保护密钥库

下面的示例说明了如何为 NSS 数据库设置口令短语。由于尚未创建口令短语,用户需要在第一个提示处按回车键。

% pktool setpin keystore=nss dir=/var/nss
Enter current token passphrase:Press the Return key
Create new passphrase:    has8n0NdaH
Re-enter new passphrase:  has8n0NdaH
Passphrase changed.