curl:(60)SSL証明書の問題:ローカル発行者証明書を取得できません


258
root@sclrdev:/home/sclr/certs/FreshCerts# curl --ftp-ssl --verbose ftp://{abc}/ -u trup:trup --cacert /etc/ssl/certs/ca-certificates.crt
* About to connect() to {abc} port 21 (#0)
*   Trying {abc}...
* Connected to {abc} ({abc}) port 21 (#0)
< 220-Cerberus FTP Server - Home Edition
< 220-This is the UNLICENSED Home Edition and may be used for home, personal use only
< 220-Welcome to Cerberus FTP Server
< 220 Created by Cerberus, LLC
> AUTH SSL
< 234 Authentication method accepted
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.


同様の問題がありました。これは私のために働きましたstackoverflow.com/a/29649024
Sagruob


//、私の場合、HentCorp Vaultサーバーにcurlリクエストを送信することでこのエラーが発生し、それぞれにBase64エンコードされたend-entity / Intermediates / rootのみを使用してX509証明書をインストールしました。
Nathan Basanese

//、ここにエラーをコピーする前に、これについてどのような調査をしましたか?
Nathan Basanese

回答:


231

「SSL証明書の問題:ローカル発行者証明書を取得できません」エラーに関連しています。これは、CURL要求を送信するシステムに適用され、要求を受信するサーバーには適用されないことに注意することが重要です。

  1. https://curl.haxx.se/ca/cacert.pemから最新のcacert.pemをダウンロードします。

  2. php.iniに次の行を追加します(これが共有ホスティングであり、php.iniにアクセスできない場合は、public_htmlの.user.iniに追加できます)。

    curl.cainfo="/path/to/downloaded/cacert.pem"

    パスは必ず二重引用符で囲んでください!!!

  3. デフォルトでは、FastCGIプロセスは300秒ごとに新しいファイルを解析します(必要に応じて、ここで提案されているようにいくつかのファイルを追加して頻度を変更できますhttps://ss88.uk/blog/fast-cgi-and-user-ini- files-the-new-htaccess /)。


1
1つ目は、OpenSSLライブラリを使用して実行される操作の認証に関するものです。2番目は、cURLを使用して行われたリクエスト
Mike

4
引用符の中にパスを書かなかったので、実際には1時間も苦労しました。ですから、ここでメモを取ってくださいcurl.cainfo="/path/to/downloaded/cacert.pem" // Do not forget to write between quotes
Himanshu Upadhyay

12
PHPへの質問での参照はありません。なぜ答えの中に参照があるのですか?質問が編集されている場合、現在使用されているコマンドラインを反映するように回答を編集できますか?
アダム

5
@Adam質問ではPHPについて言及していませんが、これは、PHPによって生成された特定のエラーメッセージに対するGoogleの#1検索結果として出てきます。だから、多分それは特にOPの質問に答えないかもしれませんが、それはコミュニティにとってまだ有用であるようです。
rinogo

1
この回答は、PHPに関連するソリューションであるため、誤解を招くものでした
Wasif Khan

141

cURLはサーバーから提供された証明書を確認できないため、失敗しています。

これを機能させるには2つのオプションがあります。

  1. -kcurlが安全でない接続を作成できるようにするオプションでcURLを使用します。つまり、cURLは証明書を検証しません。

  2. ルートCA(サーバー証明書に署名するCA)を /etc/ssl/certs/ca-certificates.crt

安全なFTPサーバーに接続していることを確認するオプションであるため、オプション2を使用する必要があります。


1
rootCA.pemファイルを:-root @ sclrdev:/ home / certs / FreshCerts#ll /etc/ssl/certs/rootCA.pem -rwxrwxrwx 1 root root 1302 Jul 8 00:09 / etc / ssl / certs /に追加しましたrootCA.pem *私は自分のrootCA.pemでServerCertificate.pemファイルを確認しました:-root @ sclrdev:/ home / certs / FreshCerts#openssl verify -CAfile rootCA.pem ../ServerCertificate.pem ServerCertificate.pem:OKそしてまたca-certificates.crt内のrootCA.pemの内容。root @ sclrdev:/ home / sclr / subhendu / certs / FreshCerts#ll /etc/ssl/certs/ca-certificates.crt -rw-r--r-- 1 root root 247945 Jul 8 00:10 / etc / ssl /certs/ca-certificates.crt
user3812540

私はどこが間違っているのか理解できません。WireSharkトレースで、次のエラーが発生します:-クライアントHelloサーバーHello、証明書、サーバーHello Doneアラート(レベル:致命的、説明:不明なCA(48))。
user3812540 2014

opensslが機能する方法は、検証中に証明書チェーンを完成しようとすることです。サーバー証明書は、ルートCAではなく、中間CAによって署名されていますか。例
ユビカ2014

私の証明書はルートCAによってのみ署名されています。
user3812540 2014

1
エラーが発生しました:-root @ sclrdev:〜#openssl s_client -connect <server_ip>:21 -showcerts CONNECTED(00000003)3074050248:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:766:---使用可能なピア証明書がありません---クライアント証明書のCA名が送信されていません--- SSLハンドシェイクが7バイトを読み取り、225バイトを書き込みました---新規、(なし)、暗号は(なし)安全な再ネゴシエーションはサポートされていません圧縮:なし拡張:なし---これが正確に何を意味するのかわかりませんか?
user3812540 14

69

この問題は、cURLスクリプトに1行のコードを追加することで解決しました。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

警告:これにより、リクエストが完全に安全でなくなります(@YSUの回答を参照)。


42
これは問題を回避するのに役立ちます。しかし、それはhttpsの概念と認証システムを完全に逃しています。
ステファンリヒター

1
動作します!証明書を気にしない場合のすばやいnダーティバイパス
Gilly

2
これは完全に安全ではありません。
Moox 2016

1
同じコードがステージングサーバーで正常に機能したにもかかわらず、ローカルサーバーでこの問題に直面していました。それがローカルだったので、私にとっては問題ありません。ありがとう
sabin

1
このチェックを追加して、ローカルサーバーでのみ使用するようにしてください if( stristr("127.0.0.1",$_SERVER["SERVER_NAME"] ) || stristr("localhost",$_SERVER["SERVER_NAME"] )) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Hussain

20

私の場合、cURLで使用しようとしたサービスへの証明書のインストールに問題があることがわかりました。中間証明書とルート証明書をドメイン証明書にバンドル/連結できませんでした。Chromeが中間証明書とルート証明書を省略したにもかかわらず解決し、証明書を受け入れたため、これが問題であることは最初は明らかではありませんでした。

証明書をバンドルした後、すべてが期待どおりに機能しました。このようにまとめました

$ cat intermediate.crt >> domain.crt

すべての中間証明書とルート証明書について繰り返しました。


2
Apache SSLCertificateChainFileを正しい証明書に設定しなかった以外は、同様の問題がありました。
Wayne Piekarski

1
あなたがこれを行う場合、およびCRTを使用すると、末尾の改行を持っていない、あなたのような行があります追加しているだと注意-----END CERTIFICATE----------BEGIN CERTIFICATE-----:あなたのバンドル内に、そしてあなたがあいまいなエラーが発生しますcurl: (77) error setting certificate verify locations
マーティ・ニール

2
letsencrypt証明書を使用していますが、証明書と秘密鍵のみをサーバーにデプロイしました。コンピューターのChromeとcurlに問題はありませんでしたが、私が作成しているnodejsアプリは証明書を受け入れませんでした。サーバーにフルチェーンをデプロイすると問題が解決しました!正しい方向を指示していただきありがとうございます!
パウロサントス

私の場合(comodoからの証明書)、中間証明書をmy-domain.ca-bundleとして送信しました。これをmy-domain.crtに追加する必要がありました。ありがとう!
Jon Hulka、2018年

18

私にとって、証明書の単純なインストールは役に立ちました:

sudo apt-get install ca-certificates

2
たとえば、一部の小さなDockerコンテナにはこれがインストールされていない場合があり、パッケージ全体が存在しない場合は、他のトラブルシューティングを行う意味がありません。
muni764 2018

16

Git Extensions v3.48のインストール後にこの問題が発生しました。mysysgitを再度インストールしようとしましたが、同じ問題が発生しました。最後に、以下を無効にする必要がありました(セキュリティへの影響を考慮してください!)Git SSL検証:

git config --global http.sslVerify false

ドメイン証明書がある場合は、(Win7)に追加することをお勧めします

C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt

23
効果はありますが、症状を隠しているように感じ、病気を治すことはできません。
MonoThreaded

4
SSL検証を無効にすることは非常に危険です
jonasl 2015

1
あなたはせずに行うことができます--global唯一のあなたが問題を抱えているリポジトリのSSLを無効にしていると。現在必要なcrtファイルについては、groups.google.com / forum /#!topic / git- for -windows / mlqn5J4OLlwをご覧ください。
koppor

13

最近このエラーに遭遇しました。ルート証明書がCAストアディレクトリに正しくインストールされていないことが原因であることがわかりました。CA dirを直接指定しているcurlコマンドを使用していました。 curl --cacert /etc/test/server.pem --capath /etc/test ...このコマンドはcurlで毎回失敗していました:(60)SSL証明書の問題:ローカル発行者証明書を取得できません。

を使用した後strace curl ...、curlは60ff2731.0という名前のルート証明書ファイルを探していることがわかりました。これは、opensslハッシュ命名規則に基づいています。だから私は効果的にルート証明書を適切にインポートするこのコマンドを見つけました:

ln -s rootcert.pem `openssl x509 -hash -noout -in rootcert.pem`.0

ソフトリンクを作成します

60ff2731.0-> rootcert.pem

curlは、カバーの下でserver.pem証明書を読み取り、ルート証明書ファイル(rootcert.pem)の名前を決定し、それをハッシュ名に変換してから、OSファイルを検索しましたが、見つかりませんでした。

したがって、重要なのは、curlエラーが不明な場合(非常に役立ちました)にcurlを実行するときにstraceを使用し、openssl命名規則を使用してルート証明書を適切にインストールすることです。


2
ふew、助けになりました。私を助けたものを少し詳しく説明するには:a)strace curlを実行します... b)何かhex.0で失敗したstat()を探しますc)何かhexをググって、対応する証明書を見つけましたd)見つけた証明書を/ usr /に置きますlocal / share / ca-certificates /(* .pemが機能しなかったため、*。crt拡張子を使用)e)update-ca-certificatesを実行します。次にビンゴ!-必要なシンボリックリンクが/ usr / lib / ssl / certs /に自動的に作成されました
No-Bugs Hare

11

サーバーからの証明書が欠落している可能性があります。

ルート->中間->サーバー

サーバーは、最低限、サーバーと中間体を送信する必要があります。

openssl s_client -showcerts -starttls ftp -crlf -connect abc:21問題のデバッグに使用します。

証明書が1つだけ返される場合(自己署名または発行済みのいずれか)、次のいずれかを選択する必要があります。

  1. サーバーを修理してもらう
  2. その証明書を信頼してCA証明書ストアに追加します(最善のアイデアではありません)
  3. 信頼を無効にする、例えばcurl -k(非常に悪い考え)

サーバーが戻った場合、自己署名(ルート)証明書は含まれていません。

  1. このチェーンのCAストアにCA(ルート)証明書をインストールします(発行者をgoogleなど)。(そのCAを信頼する場合のみ
  2. チェーンの一部としてCAを送信するようにサーバーを修正する
  3. チェーン内の証明書を信頼する
  4. 信頼を無効にする

サーバーがルートCA証明書を返した場合、それがCAストアにない場合、オプションは次のとおりです。

  1. 追加(信頼)
  2. 信頼を無効にする

それを示すメッセージがなかったため、期限切れ/失効した証明書を無視しました。しかし、あなたは証明書を調べることができますopenssl x509 -text

ホームエディション(https://www.cerberusftp.com/support/help/installing-a-certificate/)のftpサーバーに接続している場合、自己署名されていると言います。

opensslからの出力など、詳細を投稿してください。


6

cURL docsによると、証明書をcurlコマンドに渡すこともできます:

リモートサーバーを検証できるCA証明書を取得し、適切なオプションを使用して、接続時に検証するためにこのCA証明書を指摘します。以下のためのlibcurlハッカー:curl_easy_setopt(curl, CURLOPT_CAPATH, capath);

curlコマンドラインツールで: --cacert [file]


例えば:

curl --cacert mycertificate.cer -v https://www.stackoverflow.com

5

証明書のリストを更新するだけで十分な場合があります

sudo update-ca-certificates -f

update-ca-certificatesは、SSL証明書を保持するようにディレクトリ/ etc / ssl / certsを更新し、証明書の連結された単一ファイルリストであるca-certificates.crtを生成するプログラムです。


それを実行し、それを実行した後にすべてが行われます。しかし、カールが機能していません。まだ同じエラー。
AGamePlayer

1
私は命令しました、そしてそれは助けにはならなかった、そして私が私が上記のすべてをしなければならないことを信じることができませんでした。そして、あなたの答え... '-f'フラグをありがとう。
Alex Shtromberg

1
これも私が思いついた解決策です。+1
SSアン

3

Ubuntuでcurlを再インストールしsudo update-ca-certificates --fresh、証明書を更新したCA証明書を更新してみてください


2

Windowsでこの問題が発生していました。Curlはmysysgitによってインストールされたため、最新バージョンをダウンロードしてインストールすると問題が解決しました。

そうでなければ、これらはあなたが試すことができるあなたのCA証明書を更新する方法についてのまともな指示です。


2

はい、CA証明書も追加する必要があります。見やすいようにNode.jsにコードスニペットを追加します。

var fs = require(fs)
var path = require('path')
var https = require('https')
var port = process.env.PORT || 8080;
var app = express();

https.createServer({
key: fs.readFileSync(path.join(__dirname, './path to your private key/privkey.pem')),
cert: fs.readFileSync(path.join(__dirname, './path to your certificate/cert.pem')),
ca: fs.readFileSync(path.join(__dirname, './path to your CA file/chain.pem'))}, app).listen(port)

2

私もこの問題に遭遇しました。私はこのスレッドを読みましたが、ほとんどの回答は有益ですが、私にとっては非常に複雑です。私はネットワーキングのトピックを経験したことがないので、この答えは私のような人向けです。

私の場合、アプリケーションで使用している証明書の隣に中間証明書とルート証明書を含めなかったため、このエラーが発生していました。

SSL証明書のサプライヤから入手したものは次のとおりです。

- abc.crt
- abc.pem
- abc-bunde.crt

abc.crt、ファイル、1つの証明書のみがありました:

-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----

この形式で指定した場合、ブラウザーはエラー(Firefox)を表示しませcurl: (60) SSL certificate : unable to get local issuer certificateんが、curlリクエストを実行するとエラーが発生します。

このエラーを修正するには、abc-bunde.crtファイルを確認してください。あなたはおそらくこのようなものを見るでしょう:

-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----

これらは、中間証明書とルート証明書です。アプリケーションに提供しているSSL証明書に欠落しているため、エラーが発生しています。

エラーを修正するには、これらのファイルの両方の内容をこの形式で結合します。

-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----

証明書の間に、ファイルの最後または最初にスペースがないことに注意してください。この組み合わせた証明書をアプリケーションに提供したら、問題を修正する必要があります。


1

Windows-cmdから実行した場合

> curl -X GET "https://some.place"

https://curl.haxx.se/docs/caextract.htmlからcacert.pemをダウンロードし ます

環境変数を設定します。

CURL_CA_BUNDLE = C:\Program Files\curl-7.57.0\src\cacert.pem

そしてリロード環境

refreshenv

もう一度お試しください

トラブルの理由:https : //laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/95548


1

私の場合は違いました。ファイアウォールの背後にあるサイトをホストしています。エラーの原因はpfSenseです。

Network layout: |Web Server 10.x.x.x| <-> |pfSense 49.x.x.x| <-> |Open Internet|

この回答のおかげで、誤って原因を見つけました。


WANから自分のサイトにアクセスしたときは問題ありません。

ただし、サイトがLAN内からアクセスされた場合(curlWAN IPを使用しているにもかかわらず、Wordpressが独自のサーバーにリクエストを送信した場合など49.x.x.x)、pfSenseログインページが提供されていました。

証明書はと識別されましたpfSense webConfigurator Self-Signed Certificatecurlエラーを投げたのも不思議ではありません。

原因:発生したのはcurl、サイトのWAN IPアドレスを使用していたこと49.x.x.xです。しかし、Webサーバーのコンテキストでは、WAN IPはファイアウォールでした。

デバッグ: pfSense証明書を取得していることがわかりました。

解決策:サイトをホストしているサーバーで、独自のドメイン名を127.0.0.1にポイントします。

ソリューションを適用することにより、curlのリクエストはWebサーバーによって適切に処理され、ログインページを送信して応答するファイアウォールに転送されませんでした。


0

これはssh証明書ストアの問題です。ターゲットCAのWebサイトから有効な証明書PEMファイルをダウンロードしてから、ソフトリンクファイルを作成して、SSLに信頼できる証明書を指示する必要があります。

openssl x509 -hash -noout -in DigiCert_Global_Root_G3.pem

あなたは得るでしょう dd8e9d41

ハッシュ番号を使用してsolfリンクを作成し、ファイルに.0(ドット-ゼロ)を追加します

dd8e9d41.0

その後、再試行してください。


0
  1. https://curl.haxx.se/ca/cacert.pemをダウンロード

  2. ダウンロード後、このファイルをwampサーバーに移動します。

    expの場合:D:\ wamp \ bin \ php \

  3. 次に、一番下のphp.iniファイルに次の行を追加します。

curl.cainfo = "D:\ wamp \ bin \ php \ cacert.pem"

  1. 今すぐ再起動して、あなたのWAMPサーバーを。

0

あなたからのサーバー証明書を変更する必要cert.pemfullchain.pem
、私は同じ問題があったPerl HTTPSデーモン:
私が変更されました:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/cert.pem'
へ:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/fullchain.pem'


-1

これまでのところ、企業ネットワーク内でこの問題が発生するのは2つの理由があり、1つまたは両方があなたのケースで発生している可能性があります。

  1. ネットワークプロキシの動作方法により、独自のSSL証明書が存在するため、curlが認識する証明書が変更されます。多くのまたはほとんどのエンタープライズネットワークでは、これらのプロキシを使用する必要があります。
  2. クライアントPCで実行されている一部のウイルス対策プログラムもHTTPSプロキシと同様に機能するため、ネットワークトラフィックをスキャンできます。ウイルス対策プログラムには、この機能を無効にするオプションがある場合があります(管理者が許可している場合)。

ちなみに、上記の2番は、セキュリティで保護されているはずのTLSトラフィックがスキャンされることに不安を感じる場合があります。それはあなたにとって企業の世界です。


-1

その問題があり、それは新しいバージョンで解決されませんでした。/ etc / certsにはルート証明書があり、ブラウザはすべて問題ないと言っています。いくつかのテストを行った後、ssllabs.comからチェーンが完了していないという警告を受けました(実際、これは古い証明書のチェーンであり、新しい証明書のチェーンではありませんでした)。証明書チェーンを修正した後、カールがあってもすべて問題ありませんでした。


-1

すべてのCAのDigicertでこの問題が発生しました。中間とルートの両方を1つのファイルに貼り付けたdigicertca.pemファイルを作成しました。

curl https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
curl https://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt.pem

curl -v https://mydigisite.com/sign_on --cacert DigiCertCA.pem
...
*  subjectAltName: host "mydigisite.com" matched cert's "mydigisite.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert SHA2 Secure Server CA
*  SSL certificate verify ok.
> GET /users/sign_in HTTP/1.1
> Host: mydigisite.com
> User-Agent: curl/7.65.1
> Accept: */*
...

Eorekanには答えがありましたが、自分と他の1人だけが彼の答えに賛成票を投じました。


-2

具体的にするためのWindowsユーザ、使用curl-7.57.0-win64-mingwまたは類似のバージョン。

これは少し遅れており、既存の答えは正しいです。しかし、それでも私のWindowsマシンで機能させるには、まだ少し苦労しなければなりませんでしたが、プロセスは実際にはかなり単純です。したがって、段階的なプロセスを共有します。

このエラーは基本的に、curlがターゲットURIの証明書を検証できないことを意味します。証明書(CA)の発行者を信頼する場合は、信頼できる証明書のリストに追加できます。

そのためには、URIを閲覧し(例:Chromeで)、次の手順に従います

  1. 安全な南京錠のアイコンを右クリックします
  2. 証明書をクリックすると、証明書の詳細を示すウィンドウが開きます
  3. 「認証パス」タブに移動します
  4. ROOT証明書をクリックします
  5. [証明書の表示]をクリックすると、別の証明書ウィンドウが開きます
  6. 詳細タブに移動します
  7. [ファイルにコピー]をクリックすると、エクスポートウィザードが開きます
  8. 次へをクリック
  9. 「Base-64エンコードX.509(.CER)」を選択します
  10. 次へをクリック
  11. 'MyDomainX.cer'などのわかりやすい名前を付けます(目的のディレクトリに移動します)
  12. 次へをクリック
  13. [完了]をクリックすると、証明書ファイルが保存されます
  14. 次に、この.cerファイルを開いて内容をコピーします(----- BEGIN CERTIFICATE -----および----- END CERTIFICATE -----を含む)。
  15. curl.exe保存されているディレクトリに移動します例えばC:\SomeFolder\curl-7.57.0-win64-mingw\bin
  16. curl-ca-bundle.crtテキストエディターでファイルを開く
  17. コピーした証明書のテキストをファイルの最後に追加します。保存する

これで、コマンドはcurlで正常に実行されます。


3
反対投票の理由についてのコメントをいただければ
幸いです

「C:\ xampp \ apache \ bin」(Windows)で「curl-ca-bundle.crt」という名前のファイルが見つかりません。反対票はこれによるものだったと思います。私は、上記のフォルダの「bin」に私の「curl.exe」を持っている
kathikeyan A

-4

これはあなたのガズルを助けることができます:

$client = new Client(env('API_HOST'));
$client->setSslVerification(false);

guzzle / guzzle 3. *でテスト済み


-5

簡単な解決策:IN ~/.sdkman/etc/config、変更sdkman_insecure_ssl=true

手順: 保存して終了するための
ナノ~/.sdkman/etc/config
変更sdkman_insecure_ssl=falsesdkman_insecure_ssl=true

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.