java吧 关注:1,252,830贴子:12,738,701
  • 11回复贴,共1

大三,链接jdbc遇到了问题,求助,我们老师说没有见过= =

只看楼主收藏回复

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。


IP属地:河北1楼2016-11-22 20:55回复
    这是程序
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class test {
    public static final String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    public static final String DBURL="jdbc:sqlserver://localhost:1433;databaseName=Employees";
    public static final String DBUSER="sa";
    public static final String DBPASS="123456";
    public static void main(String[] args)throws Exception{
    Connection conn=null;//数据库连接
    try{
    Class.forName(DBDRIVER);
    System.out.println("【加载驱动成功】");
    }catch(ClassNotFoundException e){
    System.out.println("【加载驱动失败】");
    e.printStackTrace();
    }
    try {
    conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    System.out.println("【链接成功】");
    } catch (SQLException e2) {
    System.out.println("【链接失败】");
    e2.printStackTrace();
    }
    try {
    conn.close();
    System.out.println("【断开链接】");
    } catch (SQLException e3) {
    e3.printStackTrace();
    }
    }
    }


    IP属地:河北2楼2016-11-22 20:55
    回复
      这是结果
      【加载驱动成功】
      2016-11-22 20:31:16 com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
      信息: java.security path: C:\Program Files (x86)\Java\jre6\lib\security
      Security providers: [SUN version 1.6, SunRsaSign version 1.5, SunJSSE version 1.6, SunJCE version 1.6, SunJGSS version 1.0, SunSASL version 1.5, XMLDSig version 1.0, SunPCSC version 1.6, SunMSCAPI version 1.6]
      SSLContext provider info: Sun JSSE provider(PKCS12, SunX509 key/trust factories, SSLv3, TLSv1)
      SSLContext provider services:
      [SunJSSE: KeyFactory.RSA -> sun.security.rsa.RSAKeyFactory
      aliases: [1.2.840.113549.1.1, OID.1.2.840.113549.1.1]
      , SunJSSE: KeyPairGenerator.RSA -> sun.security.rsa.RSAKeyPairGenerator
      aliases: [1.2.840.113549.1.1, OID.1.2.840.113549.1.1]
      , SunJSSE: Signature.MD2withRSA -> sun.security.rsa.RSASignature$MD2withRSA
      aliases: [1.2.840.113549.1.1.2, OID.1.2.840.113549.1.1.2]
      , SunJSSE: Signature.MD5withRSA -> sun.security.rsa.RSASignature$MD5withRSA
      aliases: [1.2.840.113549.1.1.4, OID.1.2.840.113549.1.1.4]
      , SunJSSE: Signature.SHA1withRSA -> sun.security.rsa.RSASignature$SHA1withRSA
      aliases: [1.2.840.113549.1.1.5, OID.1.2.840.113549.1.1.5, 1.3.14.3.2.29, OID.1.3.14.3.2.29]
      , SunJSSE: Signature.MD5andSHA1withRSA -> com.sun.net.ssl.internal.ssl.RSASignature
      , SunJSSE: KeyManagerFactory.SunX509 -> com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509
      , SunJSSE: KeyManagerFactory.NewSunX509 -> com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$X509
      , SunJSSE: TrustManagerFactory.SunX509 -> com.sun.net.ssl.internal.ssl.TrustManagerFactoryImpl$SimpleFactory
      , SunJSSE: TrustManagerFactory.PKIX -> com.sun.net.ssl.internal.ssl.TrustManagerFactoryImpl$PKIXFactory
      aliases: [SunPKIX, X509, X.509]
      , SunJSSE: SSLContext.SSL -> com.sun.net.ssl.internal.ssl.SSLContextImpl
      , SunJSSE: SSLContext.SSLv3 -> com.sun.net.ssl.internal.ssl.SSLContextImpl
      , SunJSSE: SSLContext.TLS -> com.sun.net.ssl.internal.ssl.SSLContextImpl
      , SunJSSE: SSLContext.TLSv1 -> com.sun.net.ssl.internal.ssl.SSLContextImpl
      , SunJSSE: SSLContext.Default -> com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl
      , SunJSSE: KeyStore.PKCS12 -> com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore
      ]
      java.ext.dirs: C:\Program Files (x86)\Java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
      【链接失败】
      com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“java.lang.RuntimeException: Could not generate DH keypair”。 ClientConnectionId:e5d09183-ca57-418d-9071-fdc00d33962d
      at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
      at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668)
      at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1323)
      at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
      at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
      at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at test.main(test.java:24)
      Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
      at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
      at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1618)
      ... 7 more
      Caused by: java.lang.RuntimeException: Could not generate DH keypair
      at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(Unknown Source)
      at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange(Unknown Source)
      at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
      at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
      at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
      ... 10 more
      Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
      at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
      at java.security.KeyPairGenerator$Delegate.initialize(Unknown Source)
      ... 17 more
      Exception in thread "main" java.lang.NullPointerException
      at test.main(test.java:33)


      IP属地:河北3楼2016-11-22 20:56
      回复
        sqlserver可以用sa链接,没有问题,jar4的包也导入了,就是连不上数据库


        IP属地:河北4楼2016-11-22 20:58
        回复
          没有人么


          IP属地:河北6楼2016-11-22 21:05
          回复
            我只看见了,使用安全套,五个字


            IP属地:北京来自Android客户端8楼2016-11-22 21:09
            收起回复
              自己顶


              IP属地:河北9楼2016-11-22 21:19
              回复


                IP属地:河北10楼2016-11-22 21:29
                回复
                  conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Employees","sa","123456");
                  试试


                  IP属地:广东11楼2016-11-22 21:54
                  回复
                    解决了嘛楼主。。。遇到了同样的问题,求助啊。。。
                    整到头皮发麻。。。


                    12楼2017-05-17 20:58
                    回复