【发布时间】:2015-06-02 09:25:50
【问题描述】:
我正在使用演示程序中的代码,使用 Devart 的 MyDac 组件,使用 Delphi 2009 来使用 SSL 连接到远程数据库。
我已经制作并验证了证书和密钥,并在 MyDAC 中设置了连接参数以使用它们,例如
MyConnection.protocol := 'mpSSL';
MyConnection.SSLOptions.CACert := 'C:\ca-cert.pem';
MyConnection.SSLOptions.Cert := 'C:\client-cert.pem';
MyConnection.SSLOptions.Key := 'C:\client-key.pem';
MyConnection.SSLOptions.Chipherlist := 'All';
当我告诉 MyConnection 进行连接时(在设置用户名/密码等之后),它会毫无问题地连接到数据库。 但是,作为测试,我故意输入了一个无效的密钥名称 'C:\XXXclient-key.pem,它仍然可以正常连接,所以它可能根本没有使用 SSL。
所以我的问题是:
如何使用 Delphi 检测连接是否真的使用 SSL?
【问题讨论】:
-
你使用
TScSSLClient组件吗?因为那可以通过它的IsSecure属性告诉你(至少根据描述)。 -
要通过 SSL 连接到 MySQL 服务器,您应该将 TMyConnection.Options.Protocol 属性设置为 mpSSL。
MyConection.protokol = mpSSL是否等于MyConection.Options.protokol = mpSSL? -
您可以在连接后使用“status”命令进行验证(注意 SSL “cipher in use is DHE-RSA-AES256-SHA”表示正在使用 SSL)chriscalender.com/tag/client-key-pem
-
TLama - 不,我正在使用 Devart 的演示,它仅使用 TMyConnection、TMySSLIOHandler 和 TScCryptoAPIStorage。 (但演示过于复杂,无法炫耀,并且没有 cmets,因此您看不到什么是必要的,什么不是)。 Val Marrinov - 是的,我试过了。我的问题并不是关于如何使用 SSL 进行连接,而是如何确认我建立的连接是否真的使用 SSL。我可以使用我认为正确的 SSL 参数进行连接,但无法判断它是否真的是 ssl。如何使用“状态”命令?那是 TMyConnection 的方法还是你指的是 SQL?