我正在使用openssl在客户机和服务器上运行一个测试。在我的测试中,服务器使用一对(证书、密钥)或其他基于参数模式。
void configure_context(SSL_CTX *ctx, int mode)
{
if (mode == 0) {
/* Set the key and cert */
if (SSL_CTX_use_certificate_file(ctx, "./test/certs/testcert2.pem", SSL_FILETYPE_PEM) < 0) {
ERR_print_e
因此,我需要通过SSL连接到MySQL服务器。我对服务器和客户端都有根访问权限。服务器和客户机上的操作系统都是Ubuntu。服务器正在运行MySQL 5.5.46。
我按照以下说明生成证书:
这创建了8个.pem文件。我成功地让服务器在启用SSL的情况下运行。我知道是因为如果在服务器上获得MySQL提示符并运行:
mysql> show global variables like 'have_%ssl';
我得到:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
我希望使用SSL连接到Oracle数据库11.2。但我收到的唯一错误是:
Exception in thread "main" java.sql.SQLException: I/O-Fehler: Remote host closed connection during handshake
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:465)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection
我有一个SQL Server (它是)。与它的连接需要使用用户名和密码进行ssl加密和身份验证。
我可以获得ssl证书的.pem文件:
我还拥有服务器的用户名、密码和ip。在中,我找到了定义用户名(uid)、密码(pwd)和ip (数据源)的标志。但是我找不到如何放置.pem文件。
.pem文件不属于连接字符串吗?如果是的话,我该如何使用?
谢谢,
尼姆罗德
编辑:我试着用trustServerCertificate=true打开连接,但还是得到了error: 40 - Could not open a connection to SQL Server。
解决方案:
SSL不是问题所
我有一个非常简单的场景:
public class Main {
public static void main(String[] args) {
System.setProperty("javax.net.debug", "ssl");
System.setProperty("javax.net.ssl.trustStore", "H:/data/serverkeystore.jks");
System.setProperty("javax.net.ssl.tru