更新NetApp ONTAP内置的SSL访问证书

Posted on

NetApp ONTAP支持通过SSL方式提供Web访问或API接入管理控制台。在磁盘阵列首次初始化完毕后,系统会自动生成一张有效期1年的自签名证书供SSL访问用。在过期后,该证书并不会被自动续签,可能导致Web浏览器访问受阻或第三方应用(如:OnCommand Unified Manager)通信异常。此时,可以手动签发一张时效更长的新证书,来替换过期证书。

更换流程

0. SSH登陆相应的磁盘阵列。

1. 进入高级权限模式:

$ set -privilege advanced

2. 查询当前磁盘阵列上存储的所有证书列表:

$ security certificate show

返回的结果类似如下所示:

Vserver    Common Name                      Authority        Protocol Service
---------- -------------------------------- ---------------- -------- -------
cifs       cifs.cert                        Self-Signed      SSL      server
           Expiration Date: Sat Aug 17 10:00:00 2019
imno-one   imno-one.cert                    Self-Signed      SSL      server
           Expiration Date: Fri Aug 16 23:30:00 2019
imno-one-n1 imno-one-n1.cert                Self-Signed      SSL      server
           Expiration Date: Fri Aug 16 23:30:30 2019
imno-one-n2 imno-one-n2.cert                Self-Signed      SSL      server
           Expiration Date: Fri Aug 16 23:30:30 2019

3. 查询证书加载状态:

$ security ssl show

返回的结果类似如下所示:

Vserver        Enabled SSL Certificate Name
-------------- ------- -------------------------
cifs           true    cifs.cert
imno-one       true    imno-one.cert
imno-one-n1    true    imno-one-n1.cert
imno-one-n2    true    imno-one-n2.cert

也可以通过Web浏览器查看ONTAP控制台页面加载的证书信息,找到对应的证书名称。

通过对比,可以筛选出待更新的SSL证书为:imno-one.cert

注:在示例中,共有3个SSL证书,分别用于集群和下属节点(Node1和Node2)的访问。可以根据实际需求,单一或全部更新。

4. 查看证书详情,确认为已过期的证书:

$ security certificate show -instance -vserver imno-one -common-name imno-one.cert

返回的内容类似如下所示:

FQDN or Custom Common Name: imno-one.cert
Size of Requested Certificate(bits): 2048

Certificate Start Date: Sat Aug 16 23:30:00 2018
Certificate Expiration Date: Fri Aug 16 23:30:00 2019
Public Key Certificate: -----BEGIN CERTIFICATE-----
                        (...此处省略证书密钥内容...)
                        ------END CERTIFICATE------
Country Name (2 letter code): US

State or Province Name (full name): New York
Locality Name (e.g. city): New York
Organization Name (e.g. company): NetApp User
Organization Unit (e.g. section): NetApp User
Email Address (Contact Name): webmaster@imno.one
Certificate Authority: Self-Signed
Protocol: SSL
Type of Service: server
Hashing Function: SHA256

5. 删除该证书:

$ security certificate delete -common-name imno-one.cert -ca imno-one.cert -type server -vserver imno-one -serial XXXXXXX

命令中相关参数释义如下:

  • -common-name:待删除的证书名称
  • -ca:待删除的证书认证名(默认与证书名称相同)
  • -type:待删除的证书级别(默认为server,即该证书适用于系统层)
  • -vserver:待删除的证书所属SVM名称(默认证书名是根据SVM名称生成的)
  • -serial:待删除的证书所属SVM的序列号

6. 生成一张新的自签名证书:

$ security certificate create -vserver imno-one -common-name imno-one.cert -size 2048 -type server -country US -expire-days 3650 -hash-function SHA256

命令中相关参数释义如下:

  • -vserver:新证书所属SVM名称
  • -common-name:新证书名称
  • -size:证书字典大小,保持默认“2048”即可
  • -type:新证书级别,与之前的过期证书保持一致
  • -country:证书签发地。因为是自签名证书,不需要验证证书来源。所以此处填写任意国家代码即可(如:US、CN)
  • -expire-days:证书过期时间。为了方便,此处可以设置一个较长的时间,默认最长为10年(即3650天)
  • -hash-function:证书加密算法,保持默认“SHA256”即可

7. 检查新生成的证书信息,确认Certificate Expiration Date已延长:

$ security certificate show -instance -vserver imno-one -common-name imno-one.cert

8. 因为证书发生变化,SSL访问会被系统自动禁用。需要重新启用:

$ security ssl modify -vserver imno-one -server-enabled true

9. 验证用于SSL访问的证书已加载:

$ security ssl show

至此,证书更新完毕。最后清空Web浏览器缓存、第三方应用重新加载即可恢复访问。

END