配置 SSL ¶
服务器节点使用 NGINX 将所有传入的 http(s) 请求代理到在本地端口上运行的服务器,并使用 NGINX 进行 SSL 终止。默认设置使用 http(非 SSL),因为配置 SSL 需要证书文件,并且每个企业都有自己的证书文件。
该www.enterprise.conf
文件是nginx.conf
用于 AEN的默认文件。它会/etc/nginx/conf.d
在服务器安装期间复制到该目录中。
注意:本节介绍在安装网关节点并向服务器节点注册后设置 SSL。
复制所需文件¶
要在 AEN 上配置 SSL,您将需要以下文件:
- 服务器证书和密钥
- 服务器 CA 包
- 网关证书和密钥
- 网关 CA 包
在 AEN 上配置 SSL:
- 将网关证书和密钥复制到网关
/opt/wakari/wakari-gateway/etc/
上作为gateway.crt
和gateway.key
。 - 将网关 CA 包复制到
/opt/wakari/wakari-server/etc/
服务器上。 - 将服务器证书和密钥复制到服务器
/etc/nginx
上作为server.crt
和server.key
。 - 将服务器 CA 包复制到
/opt/wakari/wakari-gateway/etc/
网关上。
如果您拥有由私有根 CA 和/或中间机构签署的证书:
网关 CA 捆绑包必须包含完整链:根 CA、任何中间授权和证书。
cat gateway.crt intermediate.crt root.crt >> gatway-crt-int-root.crt
服务器 CA 捆绑包必须分成单独的文件,用于根 CA、任何中间文件和证书。
在服务器节点上配置 SSL ¶
这www.enterprise.https.conf
是一个用于 SSL 的 NGINX 配置文件。它被设置为使用server.crt
和
server.key
cert 文件。
注意:您必须更改这些值以指向您的域的签名证书文件。
注意:自签名证书或由私有根 CA 签名的证书需要额外配置。
以 root 身份执行以下步骤:
停止 NGINX:
service nginx stop
将
/etc/nginx/conf.d/www.enterprise.conf
文件移动到备份目录。将
/opt/wakari/wakari-server/etc/nginx/conf.d/www.enterprise.https.conf
文件复制 到/etc/nginx/conf.d
.注意:
/etc/nginx/conf.d
可能有www.enterprise.conf
或www.enterprise.https.conf
但可能没有两者。编辑
/etc/nginx/conf.d/www.enterprise.https.conf
文件并将server.crt
和server.key
值更改为真实证书和密钥文件的名称(如果它们不同)。运行以下命令重新启动 NGINX:
service nginx start
更新 WAKARI_SERVER 和 CDN 设置以在以下配置文件中使用 https 而不是 http:
/opt/wakari/wakari-server/etc/wakari/config.json /opt/wakari/wakari-gateway/etc/wakari/wk-gateway-config.json /opt/wakari/wakari-compute/etc/wakari/config.json
将网关证书复制
gateway.crt
到/opt/wakari/wakari-server/etc/
.在编辑器中,打开
/opt/wakari/wakari-server/etc/wakari/wk-server-config.json
并添加:"verify_gateway_certificate": "/opt/wakari/wakari-server/etc/gateway.crt"
通过运行以下命令重新启动服务器上的 AEN 服务:
service wakari-server restart
注意:此步骤可能会返回错误,因为尚未为 SSL 配置网关。
在 AEN 中,验证浏览器是否使用 https。在管理设置页面的数据中心下,单击网关,然后选择 https:
在网关上配置 SSL ¶
对于所有类型的 SSL 证书,在 中
/opt/wakari/wakari-gateway/etc/wakari/wk-gateway-config.json
,添加:{ EXISTING_CONFIGURATION, "https": { "key": "/opt/wakari/wakari-gateway/etc/gateway.key", "cert": "/opt/wakari/wakari-gateway/etc/gateway.crt" } }
对于由私有根 CA 签署或由中间机构签署的服务器证书,添加:
{ EXISTING_CONFIGURATION, "https": { "key": "/opt/wakari/wakari-gateway/etc/gateway.key", "cert": "/opt/wakari/wakari-gateway/etc/gateway.crt", "ca": ["/opt/wakari/wakari-gateway/etc/server.crt"] } }
注意:当证书链有多个由更高的根 CA 机构签署的中间证书时,您必须手动将链中的证书分解为单独的文件,并在
ca
密钥中枚举它们 :{ EXISTING_CONFIGURATION, "https": { "key": "/opt/wakari/wakari-gateway/etc/gateway.key", "cert": "/opt/wakari/wakari-gateway/etc/gateway.crt", "ca": ["/opt/wakari/wakari-gateway/etc/server1.crt", "/opt/wakari/wakari-gateway/etc/server2.crt" "/opt/wakari/wakari-gateway/etc/server3.crt"] } }
对于使用密码加密的网关证书,添加:
{ EXISTING_CONFIGURATION, "https": { "key": "/opt/wakari/wakari-gateway/etc/gateway.key", "cert": "/opt/wakari/wakari-gateway/etc/gateway.crt", "passphrase": "mysecretpassphrase" } }
注意:或者,可以使用环境变量传递密码或在手动启动 wakari-gateway 服务时输入密码。
例子:
# using an environment variable AEN_GATEWAY_SSL_PASSPHRASE='mysecretpassphrase' wk-gateway
# starting wakari-gateway manually sudo service wakari-gateway start --ask-for-passphrase Passphrase?
重启网关:
sudo service wakari-gateway restart
在计算节点上配置 SSL ¶
Anaconda Enterprise 不支持计算节点上的直接 SSL。如果您需要在计算节点上使用 SSL,您必须将每个计算节点安装在同一台服务器上作为网关使用http://localhost:5002
URL 值,同时将其添加为资源,并且您必须为每个计算节点使用一个网关。
安全提醒¶
必须正确设置证书文件的权限以防止其他人读取它们。由于 NGINX 由 root 用户运行,因此只有 root 用户需要对证书文件的读取访问权限。
例如:如果证书文件被称为server.crt
和
server.key
,然后用root帐户设置权限:
chmod 600 server.key
chmod 600 server.crt
启用或禁用 Strict-Transport-Security 标头¶
默认情况下,www.enterprise.https.conf
文件中启用了 Strict-Transport-Security (STS) :
add_header Strict-Transport-Security max-age=31536000;
如果以下任一情况为真,它可以保持启用状态:
网关在与服务器不同的主机上运行。
或者
已为网关启用 SSL。
如果以下两项都为真,您必须注释掉这一行:
网关与服务器运行在同一台主机上。
和
尚未为网关启用 SSL。
当这些条件为真时启用 STS 将导致服务器和网关之间的协议不匹配,从而导致您的应用程序无法正确启动。