Application Delivery Management

使用 StyleBook 从证书存储管理 SSL 证书

NetScaler Console 证书存储可帮助您在一个位置存储和管理 SSL 证书。因此,您可以将 SSL 证书存储在 NetScaler Console 中,并在 NetScaler 配置期间重复使用它们。

本文介绍如何创建 StyleBook 定义,该定义允许您从 NetScaler Console 证书存储上传和重复使用 SSL 证书。

参数

StyleBook 定义支持 certkey 作为一种新的内置参数类型。使用此参数类型可从 NetScaler Console 证书存储重复使用 SSL 证书。

parameters:
-
    name: certificate
    label: Certificate
    description: "要绑定到此虚拟负载均衡应用程序的证书"
    type: certkey
    required: true
<!--NeedCopy-->

在此示例中,证书参数指的是来自 NetScaler Console 证书存储的 SSL 证书或证书链。

StyleBook 定义中,您可以引用 certkey 参数的以下属性:

  • certkeyname – 您要在实例上配置的 SSL 证书密钥的名称。
  • cert_filename – SSL 证书的文件名。
  • password – 如果需要,访问 SSL 证书所需的密码。
  • key_filename – SSL 证书密钥的文件名。
  • keyfile_contents – SSL 证书的内容。
  • subject – SSL 证书中提及的主题。
  • issuer – 颁发 SSL 证书的机构。
  • certchain_certkeyname – 证书链的名称。

    注意:

    有时,多个分层证书颁发机构 (CA) 会签署服务器证书,这意味着这些证书会形成一个链。当证书存储中包含证书链时,请使用此属性。它有助于您引用和绑定证书。在创建配置包时,证书链会显示为一个列表。

这些属性可帮助您在 StyleBook 定义中创建所需的组件。

组件

当 StyleBook 具有 type: certkey 参数时,您可以从 NetScaler Console 证书存储为该参数提供证书。在此工作流程中,除了查看和选择 NetScaler Console 证书存储中的证书外,您还可以执行以下操作:

  • 上传新证书。
  • 更新现有证书。例如,已过期的证书。
  • 删除证书。

注意:

  • 您还可以使用 NetScaler Console SSL 控制板管理 NetScaler Console 证书存储中的证书。
  • 在 NetScaler Console 证书存储中更新 SSL 证书后,您必须更新与该 SSL 证书关联的配置包。要了解有关更新配置包的更多信息,请参阅使用 API 更新现有配置包创建和编辑配置包

构建您的 StyleBook

以下 StyleBook 定义使用来自 NetScaler Console 证书存储的 SSL 证书。此 StyleBook 包含将主证书和密钥文件上传到 NetScaler 实例的组件。如果这些文件已存在于 NetScaler 实例上,NetScaler Console 会跳过上传步骤,并且这些组件不起作用。

name: lb-with-cert-from-certstore
namespace: com.example.stylebooks
version: "1.0"
display-name: 使用证书存储证书的应用程序
description: 此 StyleBook 定义了一个简单的 SSL 虚拟服务器。
schema-version: "1.0"

import-stylebooks:
 -
    namespace: netscaler.nitro.config
    version: "13.0"
    prefix: ns

parameters:
 -
  name: name
  type: string
  label: 应用程序名称
  description: 为应用程序配置指定一个名称。
  required: true
 -
  name: ip
  type: ipaddress
  label: 应用程序虚拟 IP (VIP)
  description: 客户端访问的应用程序 VIP
  required: true
 -
  name: certificate
  label: 应用程序证书
  description: 要绑定到此应用程序的证书链和密钥
  type: certkey
  required: true


components:
 -
    name: pem-cert-files-comp
    type: ns::systemfile
    description: 此组件将 PEM 证书文件上传到 NetScaler
    condition: $parameters.certificate
    properties:
      filename: $parameters.certificate.cert_filename
      filelocation: /nsconfig/ssl
      filecontent: base64($parameters.certificate.certfile_contents)
      fileencoding: BASE64
 -
    name: pem-KEY-files-comp
    type: ns::systemfile
    description: 此组件将 PEM 密钥文件上传到 NetScaler。
    condition: $parameters.certificate
    properties:
      filename: $parameters.certificate.key_filename
      filelocation: /nsconfig/ssl
      filecontent: base64($parameters.certificate.keyfile_contents)
      fileencoding: BASE64
 -
    name: cert-files-comp
    type: ns::sslcertkey
    description: 此组件使用上传的文件在 NetScaler 上创建 certkey。
    condition: $parameters.certificate
    properties:
      certkey:  $parameters.certificate.certkeyname
      cert: $parameters.certificate.cert_filename
      key: $parameters.certificate.key_filename
 -
  name: lbvserver-comp
  type: ns::lbvserver
  description: 此组件创建应用程序的 lbvserver。
  properties:
   name: $parameters.name + "-lbvserver"
   servicetype: SSL
   ipv46: $parameters.ip
   port: 443
   lbmethod: ROUNDROBIN
  components:
      -
        name: sslvserver-comp
        type: ns::sslvserver
        description: 此组件在虚拟服务器上配置 SSL 设置
        properties:
          vservername: $parent.properties.name
          ssl3?: ENABLED
          tls1?: ENABLED
          tls11?: ENABLED
      -
       name: cert-bindings-adv-comp
       type: ns::sslvserver_sslcertkey_binding
       description: 此组件将 certkey 绑定到虚拟服务器
       condition: $parameters.certificate
       properties:
         vservername: $parent.properties.name
         certkeyname: $parameters.certificate.certkeyname
<!--NeedCopy-->
使用 StyleBook 从证书存储管理 SSL 证书