【发布时间】:2017-03-26 09:11:12
【问题描述】:
我正在尝试在 windows 上的 mysql 上启用 TLS,尝试以下步骤:
c:/mysqlCert> openssl genrsa 2048 > ca-key.pem
c:/mysqlCert> openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
c:/mysqlCert> openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
c:/mysqlCert> openssl rsa -in server-key.pem -out server-key.pem
c:/mysqlCert> openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
c:/mysqlCert> openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
c:/mysqlCert> openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
c:/mysqlCert> openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
现在在 mysqlCert 我得到以下文件:
在 [mysqld] 部分下的 my.ini 文件中添加了以下内容:
ssl-ca = "C:\mysqlCert\ca.pem"
ssl-cert = "C:\mysqlCert\server-cert.pem"
ssl-key = "C:\mysqlCert\server-key.pem"
在上面我输入命令:
SHOW GLOBAL VARIABLES LIKE 'have_%ssl';
而且我没有看到 OpenSSL 已启用,它仍然 DISABLED 和 SSLL 变量指向 SSL 文件,如下所示:
所以,请帮我看看我做错了什么。
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Database Administrators Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
-
CN=www.example.com可能是错误的。主机名始终位于 SAN 中。如果它出现在 CN 中,那么它也必须出现在 SAN 中(在这种情况下您必须列出两次)。更多规则和原因见How do you sign Certificate Signing Request with your Certification Authority和How to create a self-signed certificate with openssl?