Java:加密网络

时间:2019-12-03 16:19:38

标签: java ssl networking encryption

我有一个练习,必须加密网络连接。我已经用Java开发了服务器和客户端,但是我真的不知道如何加密网络连接,因为我每次运行服务器时都会收到一条消息:

  

WARN:在没有服务器身份的情况下建立SSL连接   不建议进行验证。根据MySQL 5.5.45 +,5.6.26 +   和5.7.6+要求默认情况下必须建立SSL连接   如果未设置显式选项。为了符合现有   应用程序不使用SSL的verifyServerCertificate属性已设置   为“假”。您需要通过设置明确禁用SSL   useSSL = false,或设置useSSL = true并为服务器提供信任库   证书验证。

这是我在客户端的网络课程。我的服务器没有网络类,但有配置(Hikari)

编辑:发现是我的服务器向我发出警告。

这是我的配置代码:

public final class Config {

    private static String DATABASE_HOST;
    private static int DATABASE_PORT;
    private static String DATABASE_USERNAME;
    private static String DATABASE_PASSWORD;
    private static String SCHEMA_NAME;

    private static HikariConfig config = new HikariConfig();
    private static HikariDataSource ds;

    public static HikariDataSource getHikariDataSource()
    {
        return ds;
    }

    public static void initializeConnectionPool()
    {
        config = new HikariConfig();
        String url = "jdbc:mysql://"
                + DATABASE_HOST
                + ":"
                + DATABASE_PORT
                + "/"
                + SCHEMA_NAME
                + "?serverTimezone=CET";

        config.setJdbcUrl(url);
        config.setUsername(DATABASE_USERNAME);
        config.setPassword(DATABASE_PASSWORD);
        config.addDataSourceProperty("cachePrepStmts", "true");
        config.addDataSourceProperty("prepStmtCacheSize", "250");
        config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

        ds = new HikariDataSource(config);
    }

    public static void initializeConfig() throws IOException {
        JsonObject json;
        JsonParser parser = new JsonParser();

        InputStream input = Config.class.getResourceAsStream("/config.json");
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));

        StringBuffer stringBuffer = new StringBuffer();
        String str;

        while ((str = reader.readLine()) != null) {
            stringBuffer.append(str);
        }

        json = (JsonObject) parser.parse(stringBuffer.toString());

        DATABASE_HOST = json.get("DATABASE_HOST").toString().replace("\"", "");
        DATABASE_PORT = Integer.parseInt(json.get("DATABASE_PORT").toString().replace("\"", ""));
        DATABASE_USERNAME = json.get("DATABASE_USERNAME").toString().replace("\"", "");
        DATABASE_PASSWORD = json.get("DATABASE_PASSWORD").toString().replace("\"", "");
        SCHEMA_NAME = json.get("SCHEMA_NAME").toString().replace("\"", "");

        initializeConnectionPool();
    }
}

预先感谢

0 个答案:

没有答案