トラブルシューティング

証明書のエラーを修正する方法

エラー[curl] 77:位置確認証明書の設定でエラーが発生しました:CAfileは、Pay Station SDKを使用してエクソーラサーバーにリクエストを送信すると、エラーが表示されます。

SSL証明書の検証が有効になっており、オペレーティングシステムが提供するデフォルトのCAバンドルが使用されます。しかし、すべてのシステムがディスク上にCAバンドルを持っているわけではありません。例えば、WindowsとOS Xでは、CAバンドルの共通の場所は1つではありません。

この問題を解決するには、いくつかの方法があります:

  • このコードを使用すると、開発環境では証明書の検証を無効にできます:

Copy
Full screen
Small screen
<?php

use Xsolla\SDK\API\XsollaClient;

$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$client->setDefaultOption('ssl.certificate_authority', false);
お知らせ
この問題は、本番環境でもテストする必要があります。
  • 信頼できる証明書を提供します(推奨)。CAファイルが存在することを確認し、そのパスを以下のコードで指定します:
    • /path/to/fileはCAファイルへのパスです。
    • ssl.certificate_authorityはCAファイル名です。
Copy
Full screen
Small screen
<?php

use Xsolla\SDK\API\XsollaClient;

$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$сlient->setDefaultOption('ssl.certificate_authority', '/path/to/file');

Windowsの場合、CAファイルは以下のフォルダにあります:

  • C:\windows\system32\curl-ca-bundle.crt
  • C:\windows\curl-ca-bundle.crt

指定した場所に証明書がない場合は、Mozillaが提供している証明書を使用します。

Windows用PHP一部のバージョンでは、コードを介して証明書へのパスを設定することが問題となる場合があります。これを解決するには、cacert.pemファイルをダウンロードしてphp.ini設定ファイルでそのパスを指定します。

Copy
Full screen
Small screen
    curl.cainfo=c:/cacert.pem
    
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示

    認証エラーの修正方法

    INVALID_SIGNATUREコードとAuthorization header not found in Xsolla webhook requestメッセージを伴うエラーが、ApacheのPHP-CGIがデフォルトでHTTPベーシックのユーザー/パスをPHPに渡さない場合に発生します。これを解決するには、.htaccessまたはhttpd.confのApache設定ファイルに次の文字列を追加します:

    Copy
    Full screen
    Small screen
    <?php
    
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示

    無効なIPアドレスの修正方法

    Pay Station PHP SDKを使用している場合、エクソーラはウェブフックが送信されたIPアドレスをチェックします。INVALID_CLIENT_IPエラーコードは、以下のいずれかの場合に返されます:

    • ウェブフックサーバーが開発環境のローカルホストからテストされた場合。
    • アプリがロードバランサーなどのプロキシサーバーの後ろで本番環境で動作していた。

    開発環境の場合は、このコードでIPアドレスチェックをオフにします:

    Copy
    Full screen
    Small screen
    <?php
    use Xsolla\SDK\Webhook\WebhookServer;
    $webhookServer = WebhookServer::create($callback, PROJECT_KEY);
    $webhookServer->start($webhookRequest = null, $authenticateClientIp = false);
    

    プロキシサーバーを使用している場合は、次のいずれかのソリューションを選択してください:

    • 次のコードを使用してウェブフックサーバーにリバースプロキシIPアドレスを追加します(推奨):

    Copy
    Full screen
    Small screen
    <?php
    
    use Xsolla\SDK\Webhook\WebhookServer;
    use Symfony\Component\HttpFoundation\Request;
    
    $request = Request::createFromGlobals();
    $request->setTrustedProxies(array('YOUR_PROXY_SERVER_IP_OR_CIDR'));
    
    $webhookServer = WebhookServer::create($callback, PROJECT_KEY);
    $webhookServer->start();
    

    • プロキシIPアドレスを許可リストに追加します。

    プロキシサーバーとの作業に関する詳細情報はSimfonyドキュメンテーションをご覧ください。

    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示
    最終更新日: 2024年10月7日

    誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

    問題を報告する
    当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
    フォローアップ用のメールをご提供してください
    ご意見ありがとうございました!