使用证书进行身份验证时,MISSING_AUTHORIZATION_HEADER

时间:2019-01-31 15:20:26

标签: ssl openssl pfx

我正在尝试使用证书针对API进行身份验证。

我有一个pfx文件,需要将其转换为所需的证书。

为了生成公共证书,我使用了命令:

openssl pkcs12 -in ~/Downloads/file.pfx -nodes -clcerts -nokeys | openssl x509 -out public.crt

此公共证书已在API端上传。

现在从客户端,我需要使用curl

连接到api

所以首先我使用以下命令生成了私钥:

openssl pkcs12 -in ~/Downloads/file.pfx -nodes -nocerts | openssl rsa -out private_new.key

现在我正在尝试使用以下命令连接到API:

curl -I -k --key ./private_new.key --cert ./public.crt https://<API-END-POINT>/foo/bar

但是在响应中我得到了:

HTTP/1.1 401 Unauthorized
Date: Thu, 31 Jan 2019 00:24:43 GMT
Server: Foo
X-IDS-ID: 4E178F65-78F2-4CB9-B31A-8D6288F854C5
WWW-Authenticate: Basic realm=CPS Rest Services
X-message-code: MISSING_AUTHORIZATION_HEADER
Content-Type: text/html
Vary: X-CSP-STRIP
X-IDS-Node: idp15
X-IDS-Pool: green
X-IDS-Project: prod
X-IDS-Landscape: eu-nl-1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000;includeSubDomains;preload
Cache-Control: private,no-cache,no-store

有什么我想念的吗?我是新来的人,所以我不确定我可能错过了什么。

1 个答案:

答案 0 :(得分:2)

HTTP/1.1 401 Unauthorized
...
WWW-Authenticate: Basic realm=CPS Rest Services
X-message-code: MISSING_AUTHORIZATION_HEADER

API要求您的请求中包含正确的Authentication标头,但您不发送任何标头。目前尚不清楚内容应该是什么,但通常会有一些用户名和密码一起编码。

关于您要访问的API的信息未知,因此无法正确使用它:

  • 具体来说,尚不清楚该站点是否完全使用客户端证书进行身份验证。如果没有,您将无法执行。
  • 如果它支持客户端证书,则它可能会发现您自己生成的证书不够用,因为无法验证谁在此证书后面。在这种情况下,它可以尝试使用基本身份验证作为失败的客户端证书的后备。
  • 该网站可能还需要除客户端证书之外的基本身份验证。
相关问题