将 Apstra 服务器上的 SSL 证书替换为已签名的证书
首次启动 Apstra 服务器时,系统会自动生成一个唯一的自签名证书并将其存储在 Apstra 服务器上,地址为 /user/root/etc/aos/nginx.conf.d。(nginx.crt 是 Web 服务器的公钥, nginx.key 也是私钥。该证书用于对 Apstra 服务器和 REST API 进行加密。它不适用于任何内部设备-服务器连接。由于备份系统时不会保留 HTTPS 证书,因此必须手动备份 /user/root/etc/aos 文件夹。建议替换默认 SSL 证书。Web 服务器证书管理由最终用户负责。瞻博网络支持仅尽力而为。
- 备份现有 OpenSSL 密钥。
admin@aos-server:/$ sudo -s [sudo] password for admin: root@aos-server:/# cd /user/root/etc/aos/nginx.conf.d root@aos-server:/user/root/etc/aos/nginx.conf.d# cp nginx.crt nginx.crt.old root@aos-server:/user/root/etc/aos/nginx.conf.d# cp nginx.key nginx.key.old
- 使用内置的 openssl 命令创建新的 OpenSSL 私钥。
root@aos-server:/user/root/etc/aos/nginx.conf.d# openssl genrsa -out nginx.key 2048 Generating RSA private key, 2048 bit long modulus .............+++ ......+++ e is 65537 (0x10001)
注意:请勿修改
nginx.crt或nginx.key文件名。它们在 中引用nginx.conf。作为后续服务升级的一部分,这些文件可能会被替换,因此文件名必须是可预测的。另外,请勿在 中更改配置
nginx.conf,因为此文件可能会在 Apstra 服务器升级期间被替换,并且您所做的任何更改都将被丢弃。 - 创建证书签名请求。如果要为 Apstra 服务器 HTTPS 服务创建带有主观备用名称 (SAN) 的签名 SSL 证书,则必须手动创建 OpenSSL 模板。有关详细信息,请参阅 瞻博网络支持知识库文章 KB37299。
注意:
如果您为高级证书请求创建了自定义 OpenSSL 配置文件,请不要将它们留在 Nginx 配置文件夹中。在启动时,Nginx 将尝试加载它们 (*.conf),从而导致服务失败。
root@aos-server:/user/root/etc/aos/nginx.conf.d# openssl req -new -sha256 -key nginx.key -out nginx.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:California Locality Name (eg, city) []:Menlo Park Organization Name (eg, company) [Internet Widgits Pty Ltd]:Apstra, Inc Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:aos-server.apstra.com Email Address []:support@apstra.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
- 向证书颁发机构提交证书签名请求 (nginx.csr)。所需的步骤不在本文档的范围之内;证书颁发机构的说明因实施而异。任何有效的 SSL 证书都可以。下面的示例用于对证书进行自签名。
root@aos-server:/user/root/etc/aos/nginx.conf.d# openssl req -x509 -sha256 -days 3650 -key nginx.key -in nginx.csr -out nginx.crt
- 验证 SSL 证书是否匹配:私钥、公钥和 CSR。
root@aos-server:/user/root/etc/aos/nginx.conf.d# root@aos-server:/user/root/etc/aos/nginx.conf.d# openssl rsa -noout -modulus -in nginx.key | openssl md5 MD5(stdin)= 9fcf1058a5cba9a734d155d71a4ba9f5 root@aos-server:/user/root/etc/aos/nginx.conf.d# openssl req -noout -modulus -in nginx.csr | openssl md5 MD5(stdin)= 9fcf1058a5cba9a734d155d71a4ba9f5 root@aos-server:/user/root/etc/aos/nginx.conf.d# openssl x509 -noout -modulus -in nginx.crt | openssl md5 MD5(stdin)= 9fcf1058a5cba9a734d155d71a4ba9f5
- 要加载新证书,请重新启动 nginx 容器。
root@aos-server:/etc/aos/nginx.conf.d# docker restart aos_nginx_1 aos_nginx_1 root@aos-server:/etc/aos/nginx.conf.d
- 确认新证书在您的 Web 浏览器中,并且新证书公用名与“aos-server.apstra.com”匹配。