有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java服务器配置问题

请原谅我在这里不理解。我有一个本地mysql服务器,我需要能够通过加密通道从运行在web主机上的java web应用程序访问该数据。有人能推荐最好的方法吗

谢谢大家!! 约书亚


共 (6) 个答案

  1. # 1 楼答案

    是的,MySQL支持SSL上的加密连接

    您需要使用OpenSSL或绑定的yaSSL构建MySQL服务器版本。如果您的MySQL服务器不是使用SSL支持构建的,--ssl和相关选项将给出错误

    您需要使用--ssl选项和相关选项启动MySQL服务器(mysqld),以指定SSL密钥和证书。有关启用MySQL服务器以支持SSL的更多信息,请参见http://dev.mysql.com/doc/refman/5.1/en/secure-connections.html

    您的Java客户端还必须支持SSL。连接时需要提供客户端证书。有关从Java安全连接到MySQL的更多信息,请参见http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-using-ssl.html

  2. # 2 楼答案

    AFAIK MySQL不支持加密流(如果我错了,请纠正我)

    我可以看到的一个解决方案是在MySQL服务器和web主机之间运行一个加密隧道,并通过它将连接路由到数据库

  3. # 5 楼答案

    SSH端口转发

    在本例中,可以将db_server:3306端口转发到web_server:3306。然后,看起来好像有一个MySQL数据库在web服务器上本地运行,监听端口3306。但是,web服务器上的localhost:3306确实被安全地转发到数据库服务器上的localhost:3306

    要进行设置,您需要一个无密码密钥对,以允许自动启动SSH隧道。请执行以下操作:

    db_serv$ ssh-keygen -t rsa
    db_serv$ scp .ssh/id_rsa.pub webserver:
    web_serv$ cd ~; mkdir .ssh
    web_serv$ cat id_rsa.pub >> .ssh/authorized_keys2
    web_serv$ chmod -R go-rwx .ssh; rm id_rsa.pub
    db_serv$ ssh webserver
    

    最后一个命令应该允许您在不提供密码的情况下从数据库服务器进行SSH。密钥对执行身份验证

    打开SSH隧道的命令是:

    db_服务器$ssh-f-q-N-R3306:db_服务器:3306webserver

    然后可以在Web服务器上测试本地数据库访问。您需要在MySQL数据库中为正在使用的用户和密码正确设置权限

    web_serv$mysql-h127.0.0.1-p3306-u user-pdb_name

    您可能需要将上面的“ssh”行添加到/etc/rc。d/rc。本地(在Red Hat上),以便在重新启动时打开通道。请记住,如果隧道关闭,您的web应用程序将无法访问数据库

  4. # 6 楼答案

    这基本上与这里的其他答案相同,但还是这样。使用VPN隧道(如openVPN)加密通信。最棒的是透明度。当您在VPN上时,您不需要再考虑它,只需发送安全通信。当然,设置它不是一件容易的事