为密钥库和可信任创建一个SSL通道,相同的密码?

时间:2014-03-06 13:04:15

标签: java ssl ssl-certificate keystore

我是一名新的java开发人员,我必须在服务器和客户端之间创建SSL连接(客户端必须发送签名文件)。

关注本教程并在此页面上发帖(如https://stackoverflow.com/a/18790838/2933117http://stilius.net/java/java_ssl.php),我创建了一个密钥库:keytool -genkey -keystore mySrvKeystore -keyalg RSA并编写了此代码:

    public class Servidor extends Thread {

        static int port=2017;
        static String serverKeyStore="mySrvKeystore.jks", pwdStore="123456";

        public static void main(String[] arstring) {

            SSLServerSocket sslserversocket=null;

            try {

                System.setProperty("javax.net.ssl.keyStore", serverKeyStore);
                System.setProperty("javax.net.ssl.keyStorePassword", pwdStore);


                SSLServerSocketFactory sslserversocketfactory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
                sslserversocket = (SSLServerSocket) sslserversocketfactory.createServerSocket(port);

 [...]

-

class Cliente {

    static int port=2017;
    static String serverKeyStore="mySrvKeystore.jks", pwdStore="123456";

    public static void main(String[] arstring) {

        try {

            System.setProperty("javax.net.ssl.trustStore", serverKeyStore);
            System.setProperty("javax.net.ssl.trustStorePassword", pwdStore);

            SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
            SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("localhost", port);

现在我的疑惑,实际上我必须使用相同的文件(mySrvKeystore.jks)与Keystore和TruStore使用相同的pwd(“123456”),怎么能给我这个安全的频道?客户可以轻松获得密钥

和...如果客户想要签名,文件必须使用来自trustore的密钥?

提前感谢,对不起我的否定怀疑。

0 个答案:

没有答案