Tôi đang cố gắng thực hiện cuộc gọi thử nghiệm đến API của bên thứ ba yêu cầu chứng chỉ ứng dụng khách. Tôi đã tạo một chứng chỉ mới bằng cách sử dụng lệnh này với openssl:Nhận (58) không thể sử dụng chứng chỉ ứng dụng khách (không tìm thấy khóa hoặc cụm từ mật khẩu sai?) Từ curl
req -new -newkey rsa:2048 -nodes -out mycsr.csr -keyout mykey.key
Sau đó, tôi đã gửi cho họ csr và họ đã gửi lại cho tôi mycert.crt. Tôi nối các cert và key với nhau:
cat mycert.crt mykey.key > mycertandkey.pem
Cuối cùng, tôi đã thêm mycert.crt vào thư mục ca-giấy chứng nhận và ca-certificates.conf và chạy "update-ca-chứng chỉ --fresh".
Bây giờ, tôi đang cố gắng để thực hiện cuộc gọi curl từ bash bằng cách sử dụng lệnh sau:
curl -X GET --cert mycertandkey.pem -H 'Accept-Encoding: gzip,deflate' -H 'Content-Type: application/json' https://api.URL.com
Tôi cũng đã thử:
curl -X GET --cert mycertandkey.pem --cacert mycert.crt -H 'Accept-Encoding: gzip,deflate' -H 'Content-Type: application/json' https://api.URL.com
và:
curl -X GET --cert mycertandkey.pem --cacert mycert.crt --key mykey.key -H 'Accept-Encoding: gzip,deflate' -H 'Content-Type: application/json' https://api.URL.com
Và mọi sự kết hợp khác tôi có thể nghĩ đến. Tôi luôn gặp lỗi "curl: (58) không thể sử dụng chứng chỉ ứng dụng khách (không tìm thấy khóa hoặc cụm từ mật khẩu sai?)". Khóa không có cụm mật khẩu. Tất cả các tập tin cert/key có 777 quyền.
Tôi chưa từng làm việc nhiều với các chứng chỉ trong quá khứ và tôi cảm thấy mình đã bỏ lỡ điều gì đó, đặc biệt là vì tôi dường như chỉ có một chứng chỉ. Là cert rằng các công ty khác đã gửi cho tôi một cert hoặc là nó cert khách hàng của tôi? Tôi đã liên kết khóa riêng với cert sai?
Tôi đã tìm thấy rất nhiều thông tin từng phần về trực tuyến này, nhưng nếu có ai biết về một hướng dẫn tốt về chủ đề này, tôi cũng thực sự đánh giá cao điều đó.