Obecnie nawiązuję połączenie z moją bazą danych bez użycia protokołu SSL. Chciałbym teraz wykorzystać SSL. Sposób, w jaki go skonfigurowałem, to moje źródło bazy danych jest w konfiguracji.Używanie protokołu Java do połączenia z bazą danych w języku Java
DB_SOURCE=jdbc:mysql://myDatabaseInfo:3306/DB_NAME?
DB_USER=dbUser
DB_PW=dbPw
mogę uzyskać połączenia SSL pracować nazywając mój program z następującymi argumentami
-Djavax.net.ssl.trustStore=path\to\truststore
-Djavax.net.ssl.trustStorePassword=myPassword
mogę także zmusić go do pracy przez zmianę zmiennych env w kodzie samej
dbSource += "?useSSL=true";
System.setProperty("javax.net.ssl.trustStore", "path\to\truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "myPassword");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(dbSource, dbUser, dbPw);
Jednak moim celem jest nawiązanie połączenia SSL bez wprowadzania żadnych zmian w moim kodzie i bez konieczności zmieniania argumentów VM, których używam. Czy istnieje sposób, w jaki mogę ustawić moje źródło, aby zawierał te informacje?
Coś jak:
jdbc:mysql://myDatabaseInfo:3306/DB_NAME?useSSL=true&trustCertificateKeyStoreUrl=path\to\truststore&trustCertificateKeyStorePassword=myPassword
Próbowałem to dokładnie i to nie działa, najlepiej mogę tylko dodać informacje do config mam już tak, że nie trzeba wprowadzać zmian w bardziej niż jedno miejsce. Jakieś pomysły?
Jeśli chodzi o # 1, który obejmuje tylko lokalizację magazynu zaufanych certyfikatów, nadal potrzebowałbym argumentu VM do ustawienia hasła, nie? – Marianna
Po zaimportowaniu certyfikatów do domyślnego magazynu zaufanych java, nie trzeba ustawiać hasła. To "zmiana" :) – Tarlog