我正在尝试建立与在AWS VPC上运行的MySQL Docker服务的SSL加密连接(由Docker为AWS云形成模板设置)。弹性负载平衡器配置为重定向端口3306。只要未打开SSL(添加AWS自己的证书(ACM)或添加SSL),就可以连接到容器没有问题(例如,通过使用MySQLWorkbench,mysql-client等)。我对ELB侦听器的自定义证书)。如果启用了SSL,则客户端将开始挂起/冻结,而不会返回适当的错误。我从ACM添加了ca-certs,生成了自己的证书(带有和不带有客户端的附加密钥/ cert),但是似乎没有什么可以解决我的问题。
现在,我很清楚这一事实,即这种设置不是通常的。我想这样做的标准方法是配置MySQL服务器本身。AFAIK,在这种情况下,仅客户端和ELB之间的连接被加密,但是我不明白为什么这会导致问题?
我很感谢答案!
在MySQL的客户端/服务器协议中,服务器首先进行通信。它公布其功能(包括是否支持SSL)。然后,客户端请求将连接切换到SSL模式。只有这样才能进行SSL协商。
因此,不可能在MySQL之前卸载SSL。
您的连接挂起是因为客户端正在等待来自服务器的初始数据包,而ELB正在等待客户端开始协商SSL,因为与MySQL客户端/服务器协议不同,客户端首先会进行标准SSL协商。
为此,您必须在MySQL服务器(而不是ELB)上具有证书。
AWS Network Load Balancer是暴露MySQL的更合适的解决方案,但是您仍然需要MySQL Server本身上的SSL证书。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句