我正在尝试使用证书针对API进行身份验证。
我有一个pfx文件,需要将其转换为所需的证书。
为了生成公共证书,我使用了命令:
openssl pkcs12 -in ~/Downloads/file.pfx -nodes -clcerts -nokeys | openssl x509 -out public.crt
此公共证书已在API端上传。
现在从客户端,我需要使用curl
所以首先我使用以下命令生成了私钥:
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
有什么我想念的吗?我是新来的人,所以我不确定我可能错过了什么。
答案 0 :(得分:2)
HTTP/1.1 401 Unauthorized
...
WWW-Authenticate: Basic realm=CPS Rest Services
X-message-code: MISSING_AUTHORIZATION_HEADER
API要求您的请求中包含正确的Authentication标头,但您不发送任何标头。目前尚不清楚内容应该是什么,但通常会有一些用户名和密码一起编码。
关于您要访问的API的信息未知,因此无法正确使用它: