4

モバイル デバイスから Base64 エンコーディングで DER 形式の PKCS#10 証明書要求を受け取り、CA から取得した証明書を返すサービスを作成しています。

「https://CA-server/certsrv/mscep/mscep.dll?operation=PKIOperation&Message=urlencoded request」を使用しようとしています

     $ca_link_device="https://..../certsrv/mscep/mscep.dll";
     $URL=$ca_link_device."?operation=PKIOperation&Message=".urlencode($BinarySecurityToken)."=";
     $ch3 = curl_init();
     curl_setopt($ch3, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch3, CURLOPT_URL, $URL); 
     curl_setopt($ch3, CURLOPT_HEADER, 0);
     $cert = curl_exec($ch3);

しかし、返されるデータには空のエンベロープが含まれています。私はおそらく本当にばかげたことをしているのですが、残念ながら、証明書管理に関する私の知識はゼロに近いです。私はググってみましたが、あまりにも多くの技術文書があり、どこから始めればよいのか、何が自分に関係していて何が関係していないのかわかりません。

すべての助けに感謝します。

編集: あるドキュメントによると、PKCS10 リクエストを PKCS7 にラップする必要があります。Microsoft によると、PKCS10 は問題なく、PKCS7 は証明書の更新にのみ使用されます。誰を信じる?

4

1 に答える 1

1

最後に、mscep.dll アプローチを削除し、curl を使用して、必要なパラメーターを含む POST を ...certsrv/certfnsh.asp ページに直接送信しました。次に、返された HTML を解析し、証明書をダウンロードするためのリンクを取得しました。

良い解決策ではありませんが、うまくいきました。

于 2013-02-08T08:26:02.767 に答える