Назад | Перейти на главную страницу

Как решить ошибку unknown_ca в WSO2IS-5.7 при использовании MySQL RDS в качестве хранилища данных?

Я пытался установить экземпляр на AWS, используя aws RDS в качестве источника данных через mysql-connector-java-5.1.45-bin.jar с URL-адресом jdbc

jdbc:mysql://< instance>.< zone>.rds.amazonaws.com:3306/carbon_db

У меня есть исключение

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failurecom.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet successfully received from the server was 7 milliseconds ago.  The last packet sent successfully to the server was 7 milliseconds ago.
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    .
    .
    .
    Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca

Я пытался бежать

keytool -importcert -keystore <keystore> -storepass <pass> -noprompt -file rds-combined-ca-bundle.pem

на cacerts.jks в JVM и client-trustore.jks внутри репозитория WSO2 без изменений

Если вы получаете сообщение SQLException: соединение отклонено или время ожидания соединения истекло, или специфическое для MySQL сообщение CommunicationsException: отказ канала связи, то это означает, что БД вообще недоступна. Это может иметь одну или несколько из следующих причин:

IP address or hostname in JDBC URL is wrong.
Hostname in JDBC URL is not recognized by local DNS server.
Port number is missing or wrong in JDBC URL.
DB server is down.
DB server doesn't accept TCP/IP connections.
DB server has run out of connections.
Something in between Java and DB is blocking connections, e.g. a firewall or proxy. 

Чтобы решить тот или иной вопрос, следуйте следующим советам:

Verify and test them with ping.
Refresh DNS or use IP address in JDBC URL instead.
Verify it based on my.cnf of MySQL DB.
Start the DB.
Verify if mysqld is started without the --skip-networking option.
Restart the DB and fix your code accordingly that it closes connections in finally.
Disable firewall and/or configure firewall/proxy to allow/forward the port.