如果我的应用程序没有启用SSL,为什么连接到我在MySQL中的MySQL服务器会失败?

Sha*_*anu 8 mysql azure azure-database-mysql

当我尝试从我的应用程序/客户端连接到我的MySQL服务器时没有启用SSL,导致连接失败.错误消息如下:

需要SSL连接.请指定SSL选项并重试.

连接到Azure中的MySQL服务器时是否必须使用SSL?有没有办法可以绕过这个要求?

Sha*_*anu 9

默认情况下,Azure数据库for MySQL强制您的服务器和客户端应用程序之间的SSL连接,以防止MITM(中间人)攻击.这样做是为了使与服务器的连接尽可能安全.

虽然不推荐,但如果客户端应用程序不支持SSL连接,则可以选择禁用SSL以连接到服务器.有关更多详细信息,请查看如何在Azure中MySQL服务器配置SSL连接.您可以禁用从门户网站或使用CLI进行SSL连接.请注意,Azure不建议在连接到服务器时禁用要求SSL连接.

  • 截至目前,禁用SSL似乎无效。它可能会更改,但是CLI和Portal似乎对此没有任何影响。查看屏幕截图:http://imagizer.imageshack.com/img923/9818/dAKYHX.png (2认同)

Joi*_*eph 7

选项 1 在“Azure Database for MySQL 服务器”下的 Azure 门户中 1) 选择 MySql 服务器 2) 转到定价层 -> 强制 SSL 连接并选择已禁用选项 -> 保存

选项 2 1) 从https://www.digicert.com/CACerts/BaltimoreCyber​​TrustRoot.crt.pem下载证书 2) 使用这些证书连接到 MySql 服务器

mysql -h mydemoserver.mysql.database.azure.com -u Username@mydemoserver -p --ssl-ca=/opt/ssl/BaltimoreCyberTrustRoot.crt.pem
Run Code Online (Sandbox Code Playgroud)

  • 从互联网上的某人那里下载证书似乎有点可疑,但这实际上在此处的文档中进行了描述:https://docs.microsoft.com/en-us/azure/mysql/howto-configure-ssl :-D (3认同)
  • “强制 SSL 连接并选择禁用”位于“连接设置”中,而不是“定价层”中。 (2认同)
  • 对我来说,只需添加 `--ssl` 就可以了。我假设该命令从默认位置获取证书。 (2认同)