本指南将向您展示如何在 Ivanti Connect Secure 上生成 CSR(证书签名请求),该 SSL VPN 设备多年来一直以 Pulse Secure 之名出售。您需要在管理控制台中的 System > Configuration > Certificates > Device Certificates 下创建请求,填写您的组织信息,然后将编码后的请求复制到您的证书订单中。设备会同时生成对应的私钥并保存在设备本地,因此签发的证书必须返回到同一台设备上,导入到同一个待处理请求中。
关于名称的说明,因为两者目前仍在使用中。该产品最初是 Juniper Networks 的 Junos Pulse。2014 年,Siris Capital 从 Juniper 收购了这项业务并成立了 Pulse Secure,随后在 2020 年 12 月 1 日,Ivanti 收购了 Pulse Secure 并对该系列产品重新命名:Pulse Connect Secure 变为 Ivanti Connect Secure,Pulse Policy Secure 变为 Ivanti Policy Secure,而大多数人称之为 Pulse Secure 的桌面应用现在则是 Ivanti Secure Access Client。就本任务而言,只有品牌名称发生了变化。菜单路径、按钮名称以及下方的表单,均以 Ivanti 针对当前 25.1 版本所记录的内容为准,而这些内容在仍显示 Pulse 品牌的较旧的 22.x 和 9.1 版本中也是相同的。
在 Ivanti Connect Secure(Pulse Secure)上生成 CSR
如果您已经生成了 CSR 并从 CA 收到了签发的文件,请跳过本节,直接前往如何在 Ivanti Connect Secure 上安装 SSL 证书。否则,请按照以下四个步骤操作。开始之前,请先确定用户访问 VPN 时输入的确切主机名,因为这就是证书必须承载的名称。
步骤 1:打开 Device Certificates 页面
- 登录到您的 Ivanti Connect Secure 设备的管理控制台。
- 选择 System > Configuration > Certificates > Device Certificates。
- 设备上已有的证书会列在页面顶部的 Certificate issued to 下。滚动跳过该列表,找到位于 Certificate Signing Requests 表格上方的 New CSR 按钮,然后点击它。请求表单将会打开。
步骤 2:填写请求者信息
您在此处输入的所有内容都会进入请求,其中大部分内容还会进入签发的证书。请完整拼写所有值,不要使用缩写。
- Common Name:证书必须保护的完全限定域名,例如 vpn.yourcompany.com。这必须是用户在浏览器或 Ivanti Secure Access Client 中实际输入的名称,而不是设备的内部主机名。对于通配符证书,请在域名前加上星号,例如 *.yourcompany.com。
- Organization Name:贵公司注册的完整法定名称,例如 Your Company LLC。域名验证(DV)证书会忽略该字段,但组织验证(OV)和扩展验证(EV)证书会根据公司注册记录进行核查,因此使用简称或商用名会导致您的订单被搁置。
- Org. Unit Name:留空。自 2022 年 9 月 1 日起,CA/浏览器论坛基线要求已禁止公共 CA 在签发的证书中包含组织单位信息,因此您在此处输入的任何内容都会被丢弃。
- Locality:贵公司注册所在的城市,完整拼写,例如 San Jose。这是您的注册地址,而非设备实际所在的机房位置。
- State(需完整拼写):该注册地址所在的州或省,需完整拼写,例如 California,而不是 CA。
- Country(2 位字母代码):两位字母的 ISO 国家代码,例如 US。
- Email Address:联系邮箱地址。公共 CA 是通过您订单中的联系方式来进行验证的,而非通过此字段,因此它并不决定谁会收到审批邮件。
注意撇号问题。Ivanti 文档说明,这些字段中的撇号必须用反斜杠转义,因此注册名为 Children’s Trust 的公司应输入为 Children’s Trust。若忽略这一点,请求要么无法生成,要么返回时名称会出现乱码。
步骤 3:选择密钥类型和长度
在请求者字段下方,表单会询问密钥对应如何生成。此处会出现三个设置项,其中前两项决定您的 CA 是否会接受该请求,因此请勿跳过。
- Key Type:除非有特定理由需要更改,否则请保持为 RSA。选择 ECC 会弹出一个 ECC Curve 菜单:Ivanti 自己的示例创建了一个 P-256 请求,其 Suite B 指南涵盖 P-256、P-384 和 P-521。选择该项时有两个附带条件:Ivanti 文档说明 ECC 证书仅在 ISA 系列网关和虚拟设备平台上受支持,而且一旦 ECC 证书被绑定到某个网络端口,只有支持 ECC 密码套件的客户端才能通过该端口连接。使用 RSA 可以避免这两个问题。
- Key Length:至少选择 2048,这是公共 CA 会签发的最小 RSA 密钥长度。菜单中仍然列出了 1024,因此请务必更改它。如果您的策略要求更大的密钥,3072 或 4096 也是可以的。当前的 Ivanti Connect Secure 版本文档说明设备证书密钥最高支持 8192 位,但较旧版本的文档说明上限为 3072 位,因此请在计划使用大密钥之前先确认您的版本所支持的范围。
- Random Data:在此框中输入一长串随机字符。设备在生成密钥时会将您输入的内容混入其随机数生成器中。此处无需记住任何内容,也不必记录下来。
有一点版本说明值得了解。从 25.1.0.0 版本起,Ivanti Connect Secure 不再接受数字签名中使用 SHA-1,仅持有 SHA-1 签名设备证书的设备将无法启动其用户界面。公共 CA 自 2016 年初起就已停止签发 SHA-1 证书,因此今天从公共 CA 订购的证书不会受此影响。若您是向内部或旧版 CA 提交请求,则需要注意这一点:请确保其使用 SHA-256 或更高级别的算法进行签名。
步骤 4:创建请求
提交前请再次核对每个字段,然后点击 Create CSR。设备将生成该请求,同时生成与之对应的私钥。密钥保留在设备上,不会显示给您,也不会发送给 CA。
下一个屏幕将确认请求已创建。向下滚动,您将看到编码后的请求内容本身,可供复制或保存到文件。
复制 CSR 并发送给您的 CA
屏幕上的代码块看起来是这样的:
-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
... (many lines of base64) ...
-----END CERTIFICATE REQUEST-----
选中整个内容,包括 -----BEGIN CERTIFICATE REQUEST----- 和 -----END CERTIFICATE REQUEST----- 这两行。每个标记两侧各有五个连字符。请注意其中的 REQUEST 一词:证书签名请求不是以 BEGIN CERTIFICATE 作为分隔标记的,粘贴较短的标记是订单表单拒绝该请求的常见原因。将该代码块粘贴到 Notepad 或 TextEdit 等纯文本编辑器中,然后再粘贴到订单表单上的 CSR 框中。请勿使用文字处理软件,因为它可能会替换字符并破坏编码。
完成后点击 Back to Device Certificates。您的请求现在会以 Pending CSR 链接的形式出现在 Certificate Signing Requests 下,您可以随时重新打开它以再次复制文本内容。
在等待期间,有两件事需要避免:
- 不要删除待处理的 CSR。Ivanti 明确说明了这样做的后果:删除该请求会连同其私钥一并删除,届时您将无法安装由该请求签发的证书。一旦发生这种情况,唯一的解决方案就是重新生成 CSR 并重新签发证书。
- 不要在同一时间向 CA 发送多个 CSR。Ivanti 警告称,这样做可能导致重复扣费。
如果订单表单询问证书用于哪种 Web 服务器,请选择 Apache,若列出了多个 Apache 选项,则任选其一即可。如果询问证书格式,请选择标准格式。这两项都是 Ivanti 官方针对该设备给出的建议。
提交前检查 CSR
Common Name 中的一个拼写错误就意味着 CA 签发的证书将无法被用户使用,而重新签发又需要您再进行一轮验证,从而产生额外费用。将请求内容粘贴到我们的CSR 解码器中并仔细核对:Common Name 应与用户输入的主机名完全一致,组织信息也应与您的注册信息相符。如果有任何问题,请在设备上创建一个新的 CSR。切勿编辑编码后的文本,因为该请求是由其自身的私钥签名的,任何更改都会使其失效。
如果您的工作站上安装了 OpenSSL,可以将请求保存到文件中,并在本地运行相同的检查:
openssl req -noout -text -verify -in vpn.csr
它会打印出主题信息、密钥大小,以及一行确认该请求与其自身密钥验证成功的信息。
当内置表单不足以满足需求时
New CSR 表单只要求填写单一的 Common Name,且没有用于添加其他主机名的字段,因此它无法构建多域名(SAN)证书的请求。如果一张证书需要覆盖多个不同的名称,例如 vpn.yourcompany.com 和 portal.yourcompany.com,则需要在设备之外生成请求,事后再将证书与其密钥一并导入。通配符证书不需要这样做:只需将通配符作为 Common Name 输入,内置表单即可处理。
我们的CSR 生成器可以通过单个表单构建 SAN 请求。如果您更喜欢在任意机器上使用 OpenSSL,以下命令可以同时生成请求和密钥:
openssl req -new -newkey rsa:2048 -nodes
-keyout vpn.key
-out vpn.csr
-subj "/CN=vpn.yourcompany.com/O=Your Company LLC/L=San Jose/ST=California/C=US"
-addext "subjectAltName=DNS:vpn.yourcompany.com,DNS:portal.yourcompany.com"
如上所示,将 Common Name 作为 SAN 列表中的第一个条目重复填写。客户端会将主机名与 SAN 条目进行匹配,而忽略 Common Name,因此仅出现在 CN 中的名称是不受覆盖的。请妥善保管 vpn.key:以这种方式创建请求时,设备并不持有该密钥,因此您需要在导入时通过 Import Certificate & Key(而非通过待处理的 CSR)自行提供该密钥。
CA 签发证书后该怎么做
验证完成后,CA 会通过电子邮件向您发送签发的证书及其中间(CA)证书链,通常以 ZIP 压缩包的形式提供。解压后,返回到 System > Configuration > Certificates > Device Certificates,点击与之对应的 Pending CSR 链接,在 Import signed certificate 下浏览选择该文件,然后点击 Import。导入到该待处理请求上,正是将证书与设备自步骤 4 起一直保留的密钥进行配对的方式。
该设备支持 DER 或 PEM 编码的 X.509 证书(.cer、.crt、.der 和 .pem 文件),以及 PKCS#12(.pfx 和 .p12)格式。导入证书并不是最后一步:您仍需添加中间证书,并将新证书绑定到您的端口上,用户端才会看到任何变化。我们关于如何在 Ivanti Connect Secure 上安装 SSL 证书的指南涵盖了这两方面的内容。
如果您要替换即将到期的证书,则有两种选择。如上所述创建新的 CSR,是 Ivanti 所称的更安全的选项,因为 CA 会针对新密钥签发新证书,而旧密钥则会被淘汰。另一种方案则保留现有密钥,Ivanti 称之为安全性较低的选项:通过重新提交您原始的 CSR,或确认 CA 仍保留有该记录,向您的 CA 申请续订,然后在列表中打开该证书,点击 Renew Certificate,浏览选择续订后的文件并点击 Import。这样可以省去重新构建请求的步骤,但代价是继续沿用同一个密钥。
常见问题
在管理控制台中,选择 System > Configuration > Certificates > Device Certificates,然后点击 New CSR。填写请求者信息和密钥设置,然后点击 Create CSR。编码后的请求会显示在下一屏幕上,在您导入签发的证书之前,该请求会被标记为 Pending。
是的。Ivanti 于 2020 年 12 月 1 日收购了 Pulse Secure,并对产品进行了重新命名:Pulse Connect Secure 变为 Ivanti Connect Secure,Pulse Policy Secure 变为 Ivanti Policy Secure,Pulse Secure 桌面客户端则变为 Ivanti Secure Access Client。证书工作流程并未改变,因此无论您的设备仍显示 Pulse 品牌还是较新的 Ivanti 品牌,这些步骤均适用。
不会。设备在您点击 Create CSR 时会在本地生成密钥,并将其保密。只有请求内容会被显示出来,也只有请求会发送给 CA。这就是为什么签发的证书必须导回同一台设备、导入到同一个待处理请求中,也是为什么您在等待期间绝不应删除待处理 CSR 的原因:删除它会同时删除密钥,由此签发的证书也将无法使用。
选用 Key Length 为 2048 的 RSA 适用于几乎所有部署场景,且 2048 位是公共 CA 会签发的最小密钥长度。如果您的安全策略要求更大的密钥,可选择 3072 或 4096。仅在确有需要时才选择 ECC:Ivanti 文档说明 ECC 证书仅在 ISA 系列网关和虚拟设备平台上受支持,并且只有支持 ECC 密码套件的客户端才能连接到承载 ECC 证书的端口。
通过内置表单无法实现,因为它只接受一个 Common Name,且没有用于添加其他名称的字段。通配符是可行的,因此如果您所有的主机名都在同一个域下,可将 *.yourcompany.com 输入为 Common Name。对于真正不同的名称,请使用我们的 CSR 生成器或 OpenSSL 创建请求,自行保管私钥,并通过 Import Certificate & Key(而非通过待处理的 CSR)加载两者。
不可以。该请求是由其自身的私钥签名的,因此哪怕修改一个字符也会使其失效。请在设备上使用正确的值创建一个新的 CSR 并提交。一旦替代请求就位,且没有证书是针对该错误请求签发的,您就可以删除该有误的待处理请求。
因为这是两种不同的对象。-----BEGIN CERTIFICATE REQUEST----- 标记的是 CSR,即您发送给 CA 的代码块。-----BEGIN CERTIFICATE----- 标记的是已签发的证书,即 CA 返回给您的代码块。复制请求时请保持其自身的标记完整无损,两侧各五个连字符,标记前后不要添加任何内容。


