如何判断我的连接是否使用SSL?

时间:2015-06-02 09:25:51

标签: delphi ssl mydac

我正在使用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?

1 个答案:

答案 0 :(得分:0)

我想我会自己关闭这个问题,因为它看起来比我想象的要复杂得多,在这个问题有意义之前我需要更多的信息。看来是sql语句;

SHOW STATUS LIKE 'Ssl_cipher'

可以提供帮助,因为如果它不使用ssl,它的值将为空,否则将包含值。 touble是我正在使用的Mysql服务器(ISP Nativespace)甚至没有名为Ssl_cipher的变量名称,所以看起来它似乎不支持ssl。尝试使用另一个ISP做同样的事情我确实看到了变量名称,但它没有任何价值,显示即使我可以做到也没有使用ssl。

现在看来,在建立ssl连接之前还需要做更多的事情。在db上创建一个只使用ssl的新用户,为它们设置权限,在服务器上运行代码等。

一点也不像Devart的安全桥网页那么简单!

  

"在表单上放置几个组件就足够了,并指定   服务器地址和用户登录信息建立安全   。连接"

呃......不太好!