小编Rai*_*idi的帖子

我需要验证 x509 中的哪些字段(作为 JWS 中的 x5c 标头)来证明证书的合法性?

我已经在这里发布了类似的问题,但我意识到我的问题可能更多地与 x509 证书有关,而不是与 JWS 一般有关。

事情是这样的,我对 JWS 还很陌生,Apple 现在将它们作为服务器到服务器通信的一部分进行传输。我试图了解如何完全保证JWS的有效性,因为据我了解,签名验证仅意味着整个JWS没有被篡改。我不知道如何实际验证此有效负载确实来自受信任的来源(又名Apple)

这是我到目前为止所得到的(PHP):

//1. explode jws and decode what's needed
$components = explode('.', $jws);
$headerJson = json_decode(base64_decode($components[0]),true);
$signature = base64Url_decode($components[2]);

//2. extract all certificates from 'x5c' header
foreach ($headerJson['x5c'] as $x5c){
    $c = '-----BEGIN CERTIFICATE-----'.PHP_EOL;
    $c .= chunk_split($x5c,64,PHP_EOL);
    $c .= '-----END CERTIFICATE-----'.PHP_EOL;
    $certificates[] = openssl_x509_read($c);
}

//3. verify validity of certificate chain (each one is signed by the next, except root cert)
for($i = 0; $i < count($certificates); $i++){ …
Run Code Online (Sandbox Code Playgroud)

php storekit x509 jwt

4
推荐指数
1
解决办法
2257
查看次数

如何在Windows x64上使用openSSL和nghttp2编译cURL?

这是有史以来的第一个问题,所以请允许我:)我过去三天一直在网上,试图找到一种在Windows机器上获得以下结果的方法。

我需要的'cURL -V'输出示例

我已经发现了很多用于macOS和Unix的东西,但是对于Windows却只有一点点。我正在运行xampp,最终我试图使它通过cURL / PHP发送http / 2请求。到目前为止,我所收集的是我需要使用某些库来编译cURL,例如openssl(至少1.0.2),启用了http / 2的libcurl和nghttp2。我觉得我已经很接近了,但是我只是缺少一些步骤。

到目前为止,我所做的是:

  • 为Visual Studio 2017安装了诸如mingw32,cmake和构建工具之类的东西
  • 下载nghttp2-1.27.0,并使用'cmake'和'cmake --build'获取5个文件:nghttp2.dll,.exp,.lik,.lib和.pdb
  • 下载curl-7.56.1.tar.gz(https://curl.haxx.se/download.html上的第一个)
  • 下载的libssh2-1.8.0
  • 下载的openssl-1.0.2l
  • 下载了zlib-1.2.11
  • https://curl.haxx.se/docs/install.html上按照Mingw32的说明进行操作(但它始终提示我“无法找到openSSL软件包”)
  • 我读到某个地方需要用'--with-nghttp2 --prefix- [此处的NGHTTP2文件夹位置]'标志来编译cURL,所以我尝试了一些我认为可行的方法,但是我认为它没有用: 'cmake --with-nghttp2 --prefix- [此处的NGHTTP2文件夹位置]。”,然后“ cmake install”。”,看起来好像做了些什么,但是在curl-7.56.1 / src /中内置的cURL.exe除了libcurl之外没有其他任何东西。

任何建议或指针将不胜感激!感谢大伙们 :)

windows xampp curl openssl http2

3
推荐指数
1
解决办法
1616
查看次数

标签 统计

curl ×1

http2 ×1

jwt ×1

openssl ×1

php ×1

storekit ×1

windows ×1

x509 ×1

xampp ×1