1

私はオープンソースのPHPアプリケーションに取り組んでいます。機密データを転送するために、アプリケーションがサーバーに接続する必要がある場合があります。サーバーにSSLをインストールしていて、正しく設定されていると思いますが、ここの誰かが確認してくれることを期待しています。

アプリケーションは他のユーザーのサーバーで使用されるため、サーバー間の通信になります。

サーバーに接続するときは、ユーザーサーバーをクライアントとして扱います。私のサーバーはサーバーに接続しないので、SSLは必要ありません(右?)。

cURLを使用して、接続中に(サーバーへの)呼び出しとPOSTデータを作成します。だから私はアドレスにcURLしhttpsます。

今はそれだと思いました。アドレスをcURLするとhttps、すべてが安全になります。仲買人のことを気にせず、好きなもの(クレジットカード番号、パスワードなど)を安全に送ることができます。物語の終わり。

しかし、読んだ後、cURLセッションで他のことをしている人がいることに気づきました-証明書(.crtファイル)を含めるなど:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/BuiltinObjectToken-EquifaxSecureCA.crt");

それはオープンソースにとって安全ですか?私もやるべきですか?それとも私は私が持っているもので安全ですか?

4

2 に答える 2

1

cURLをインストールするシステムによっては、SSL証明書を検証するための十分な情報がある場合とない場合があります(これは、中間証明書とルート証明書をWebサイト証明書にリンクすることで改善できます)。こちらでも読むことができます:http://curl.haxx.se/docs/sslcerts.html

特にcURLは古い証明書バンドルとともに出荷される傾向があるため、バンドルを明示的に出荷することが理にかなっている場合があります。ここから最新のものをダウンロードできます(Firefoxのソースコードから取得):http ://curl.haxx.se/docs/caextract.html

ソフトウェアが独自のサーバーと排他的に通信する場合は、独自の公開証明書のみを含むバンドルを出荷することもできます。これにより、無料の自己署名証明書を使用できるようになります:)

于 2012-05-19T16:33:34.263 に答える
0

CURL呼び出しに沿ってクライアント証明書を添付するのは、相手側のサーバーがCURL呼び出しを具体的に提供し、それらのクライアント証明書を持っているクライアント以外のクライアントからの接続を受け入れていない場合です。

あなたがここでウェブサイトについて話しているなら、あなたはここでそれについて心配する必要さえありません。

ただし、セキュリティで保護されたリソースのためにアクセスするサービスプロバイダーについて話している場合、クライアント証明書の作成が必要な場合は、それらが発行され、明示的に使用するように指示されます。

たとえば、プライベートメンバーだけがアクセスできるシステムがあります。他のメンバーがリクエストを送信するRPCエンドポイントがあります。また、メンバーへのアクセスのみを許可しているため(Webサイトのように非公開ではありません)、クライアント証明書を発行し、サービスコールと一緒にそれらを添付するように明示的に指示します。

于 2012-05-19T16:24:41.973 に答える