0

SSO 用のサービス プロバイダーの作成に取り組んでいます。すでにシステム全体を稼働させていますが、あとは ID プロバイダーから提供された証明書を使用して取得した応答を検証するだけです。

私が持っているもの:

  • 証明書 (namewhere.pfx)
  • パスワード (小さな文字列)
  • xml 応答 (デコードおよび解析済み)

私が使用しているもの:

  • php

必要なもの:

  • xml 応答を確認するには

私はたくさんグーグルで調べてきました.pem形式の証明書があれば可能だと考えました。そのために、私はグーグルで調べて、いくつかの Linux コマンドを見つけました。しかし、私はそれについてどうすればよいかわかりません。これらのコマンドを php コードで使用して、作成したファイルを利用できるようにする方法、または .pem ファイルを一度作成してオンラインで保存する方法を教えてください。もしそうなら、セキュリティ上の問題などを避けるためにそれらをどこに配置しますか?

4

1 に答える 1

3

デジタル署名のみを検証しようとしている場合は、署名者の公開証明書のみが必要です。セキュリティの問題に関する限り、証明書は既に公開されているため、公開について心配する必要はありません。主なことは、信頼する証明書を別の証明書に切り替えられないようにすることです。

公開証明書のみが必要なので、pfx ファイルから抽出するのがおそらく最善です。ここに示すコマンドを使用してそれを行うことができます( openssl を使用して pfx を pem に変換する)。一部の pfx ファイルには、公開したくない秘密鍵が含まれている場合があります。これは、公開証明書を抽出してそれのみを使用するもう 1 つの理由です。

次に、openssl_verify()関数を使用して署名を検証できます。署名されたデータ、署名、および公開鍵が必要です。そのリンクには、証明書から公開鍵を抽出して署名を検証するサンプルコードがあります。

于 2013-06-03T21:13:21.353 に答える