如何通过 Haproxy 连接 Neptune?
How can I connect with Neptune by Haproxy?
在本地开发环境中,我想连接AWS Neptune 端点。但是,在 ap-north-east2 中,我必须使用 ssl。
所以,我尝试在我的堡垒服务器上设置 Haproxy。
(参考:https://docs.aws.amazon.com/neptune/latest/userguide/security-ssl.html)
但是,我现在不知道如何将 Amazon 根 CA 证书用于 Haproxy。
(AmazonRootCA1.pem:
https://www.amazontrust.com/repository/AmazonRootCA1.pem)
此代码是我的haproxy.cfg。
frontend neptune
bind :59999 ssl crt ca-file /usr/local/etc/haproxy/SFSRootCAG2.pem verify required.
reqadd X-Forwarded-Proto:\ https
mode http
timeout client 60m
default_backend neptune
backend neptune
mode http
option forwardfor
option httpclose
timeout server 60m
balance roundrobin
server neptune my-alpha.cluster-abcdefg.ap-northeast-2.neptune.amazonaws.com:8183 weight 1 check inter 10000
我不明白这个
"如果您正在使用负载均衡器或代理服务器(例如 HAProxy),则必须使用 SSL 终止并在代理服务器上拥有您自己的 SSL 证书。
SSL 直通不起作用,因为提供的 SSL 证书与代理服务器主机名不匹配。
(https://docs.aws.amazon.com/neptune/latest/userguide/security-ssl.html)
我需要做什么?
这是错误日志
[ALERT] 215/115034 (6) : parsing [/usr/local/etc/haproxy/haproxy.cfg:7] : 'bind :59999' : unable to load SSL private key from PEM file '/usr/local/etc/haproxy/SFSRootCAG2.pem'.
[ALERT] 215/115034 (6) : Error(s) found in configuration file : /usr/local/etc/haproxy/haproxy.cfg
[ALERT] 215/115034 (6) : Fatal errors found in configuration.
虽然我不完全理解上下文,但听起来您想要海王星服务器的 http -> https 代理。为此,您需要执行以下操作:
frontend neptune
bind *:59999
mode http
# your options here...
default_backend neptune
backend neptune
mode http
# your options here...
server neptune my-alpha.cluster-abcdefg.ap-northeast-2.neptune.amazonaws.com:8183 ssl ca-file /usr/local/etc/haproxy/SFSRootCAG2.pem verify required weight 1 check inter 10000
如果这只是一个开发环境,您或许可以简化您的代理,省略 ca 文件并使用 verify none
,例如:
server neptune my-alpha.cluster-abcdefg.ap-northeast-2.neptune.amazonaws.com:8183 ssl verify none weight 1 check inter 10000
在本地开发环境中,我想连接AWS Neptune 端点。但是,在 ap-north-east2 中,我必须使用 ssl。 所以,我尝试在我的堡垒服务器上设置 Haproxy。 (参考:https://docs.aws.amazon.com/neptune/latest/userguide/security-ssl.html)
但是,我现在不知道如何将 Amazon 根 CA 证书用于 Haproxy。 (AmazonRootCA1.pem: https://www.amazontrust.com/repository/AmazonRootCA1.pem)
此代码是我的haproxy.cfg。
frontend neptune
bind :59999 ssl crt ca-file /usr/local/etc/haproxy/SFSRootCAG2.pem verify required.
reqadd X-Forwarded-Proto:\ https
mode http
timeout client 60m
default_backend neptune
backend neptune
mode http
option forwardfor
option httpclose
timeout server 60m
balance roundrobin
server neptune my-alpha.cluster-abcdefg.ap-northeast-2.neptune.amazonaws.com:8183 weight 1 check inter 10000
我不明白这个
"如果您正在使用负载均衡器或代理服务器(例如 HAProxy),则必须使用 SSL 终止并在代理服务器上拥有您自己的 SSL 证书。
SSL 直通不起作用,因为提供的 SSL 证书与代理服务器主机名不匹配。
(https://docs.aws.amazon.com/neptune/latest/userguide/security-ssl.html)
我需要做什么?
这是错误日志
[ALERT] 215/115034 (6) : parsing [/usr/local/etc/haproxy/haproxy.cfg:7] : 'bind :59999' : unable to load SSL private key from PEM file '/usr/local/etc/haproxy/SFSRootCAG2.pem'.
[ALERT] 215/115034 (6) : Error(s) found in configuration file : /usr/local/etc/haproxy/haproxy.cfg
[ALERT] 215/115034 (6) : Fatal errors found in configuration.
虽然我不完全理解上下文,但听起来您想要海王星服务器的 http -> https 代理。为此,您需要执行以下操作:
frontend neptune
bind *:59999
mode http
# your options here...
default_backend neptune
backend neptune
mode http
# your options here...
server neptune my-alpha.cluster-abcdefg.ap-northeast-2.neptune.amazonaws.com:8183 ssl ca-file /usr/local/etc/haproxy/SFSRootCAG2.pem verify required weight 1 check inter 10000
如果这只是一个开发环境,您或许可以简化您的代理,省略 ca 文件并使用 verify none
,例如:
server neptune my-alpha.cluster-abcdefg.ap-northeast-2.neptune.amazonaws.com:8183 ssl verify none weight 1 check inter 10000