GNU/Linux >> Linux の 問題 >  >> Linux

公開鍵の取得は許可されていません–WSO2MySQLエラー

私はWSO2APIManagerをほぼ1年間使用して、APIを内部および外部の両方のコンシューマーに簡単かつ安全に公開しています。メンテナンス作業のためにシステムが停止するまで、すべてが正常に機能していました。システムが通常のサービスに戻ったとき、wso2carbon.logのいくつかの例外を除いて、WSO2を起動できませんでした。 ファイル–「原因:com.mysql.cj.exceptions.UnableToConnectException:公開鍵の取得は許可されていません」 この記事では、修正を共有します。

エラー公開鍵の取得は許可されていません–MySQL8を使用したWSO2*

上記のエラーとは別に、wso2carbon.logにさらにいくつかの例外があります。 ファイル、これがそのコピーです。

ERROR {org.wso2.carbon.user.core.internal.Activator} - Cannot start User Manager Core bundle org.wso2.carbon.user.core.UserStoreException: Cannot initialize the realm.
at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:286)
at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:102)

:::::::::::::::::::::::::::::::::::::::::::::::::

Caused by: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at 


:::::::::::::::::::::::::::::::::::::::::::

ERROR {org.wso2.carbon.user.core.internal.Activator} - Cannot start User Manager Core bundle org.wso2.carbon.user.core.UserStoreException: Cannot initialize the realm.
at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:286)


::::::::::::::::::::::::::::::::::::::::::

Caused by: org.wso2.carbon.user.core.UserStoreException: DB error occurred while persisting domain : PRIMARY & tenant id : -1234

最初のいくつかの例外を見ると、エラーはMySQL接続と、「 com.mysql.cj.jdbc.exceptions.SQLError」で発生した例外が原因であることがわかりました。 ‘はそれを確認します。 MySQLコネクタに問題があるようで、Googleですばやく検索すると、この問題はMySQLバージョン8で一般的に報告されていることがわかりました。

システムがMySQLの最新バージョン(バージョン8.0.26)に更新されたようです。ごく最近、MySQL 8バージョンでいくつかの問題を修正しました。これを確認したい場合に備えて、今、この問題に戻ります。ほとんどのフォーラムは、'allowPublicKeyRetrieval=true'を追加することを提案しました MySQL接続URLに接続すると、それも機能しました。

WSO2で、「allowPublicKeyRetrieval=true」を追加します ‘をdeployment.tomlに 以下に示すようなファイル:

[database.apim_db]
type = "mysql"
#Henry - Retain mysql connnection string as localhost always
url = "jdbc:mysql://localhost:3306/apim_db?useSSL=false&amp;allowPublicKeyRetrieval=true"
.............

[database.shared_db]
type = "mysql"
#Henry - Retain mysql connnection string as localhost always
url = "jdbc:mysql://localhost:3306/shared_db?useSSL=false&amp;allowPublicKeyRetrieval=true"
........................

&amp; allowPublicKeyRetrieval=trueの前 接続URLで。 「&amp;」の代わりに「&」だけを追加すると、次のエラーが発生します:

Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '=' (code 61); expected a semi-colon after the reference for entity 'allowPublicKeyRetrieval'
at [row,col {unknown-source}]: [39,100]


ERROR {org.wso2.carbon.user.core.internal.Activator} - Cannot start User Manager Core bundle java.lang.RuntimeException: Error in looking up data source: Name [jdbc/SHARED_DB] is not bound in this Context. Unable to find [jdbc].

変更が完了したら、WSOサービスを再起動します。以上です!

オプションallowPublicKeyRetrieval=true クライアントがサーバーに公開鍵を自動的に要求できるようにします。 MySQLオプションの詳細については、こちらをご覧ください。

注意

実動サーバーでWSO2を実行している場合、useSSL=falseは推奨されません。 allowPublicKeyRetrieval=True 悪意のあるプロキシを介したman-in-the-middle攻撃により、プレーンテキストのパスワードを取得できる可能性があります。 allowPublicKeyRetrievalはデフォルトでFalseであり、明示的に有効にする必要があります。データベースへのセキュリティで保護された接続を使用している場合は、接続URLからuseSSL =falseを削除してみてください。これにより、問題が解決する可能性があります。


Linux
  1. [修正済み]ホストはこのMySQLサーバーに接続できません

  2. yum-config-managerコマンドが見つかりません[修正]

  3. 登録されたコールバックが提供されたURLと一致しません–WSO2エラーを修正します

  1. c_rehash:コマンドが見つかりませんエラー–解決策

  2. apt-get 更新中に GPG No Public Key NO_PUBKEY エラーを修正する方法

  3. ssh-keygen:コマンドが見つかりません

  1. MySQL - エラー 1045 - アクセスが拒否されました

  2. scp にローカル IP とユーザー名を追加すると公開鍵エラーが返されるのはなぜですか?

  3. 公開鍵をサーバーにコピーする方法