更新NetApp ONTAP内置的SSL访问证书
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 —