Inilah cara saya melakukannya:
curl -v \
--key ./admin-key.pem \
--cert ./admin.pem \
https://xxxx/api/v1/
Sertifikat klien TLS tidak dikirim dalam header HTTP. Mereka ditransmisikan oleh klien sebagai bagian dari jabat tangan TLS , dan server biasanya juga akan memeriksa validitas sertifikat selama jabat tangan.
Jika sertifikat diterima, sebagian besar server web dapat dikonfigurasi untuk menambahkan header untuk mengirimkan sertifikat atau informasi yang terdapat pada sertifikat ke aplikasi. Variabel lingkungan diisi dengan informasi sertifikat di Apache dan Nginx yang dapat digunakan di arahan lain untuk menyetel header.
Sebagai contoh pendekatan ini, cuplikan konfigurasi Nginx berikut akan memvalidasi sertifikat klien, lalu menyetel SSL_CLIENT_CERT
header untuk meneruskan seluruh sertifikat ke aplikasi. Ini hanya disetel saat sertifikat berhasil divalidasi, sehingga aplikasi kemudian dapat mengurai sertifikat dan mengandalkan informasi yang dimilikinya.
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/chainedcert.pem; # server certificate
ssl_certificate_key /path/to/key; # server key
ssl_client_certificate /path/to/ca.pem; # client CA
ssl_verify_client on;
proxy_set_header SSL_CLIENT_CERT $ssl_client_cert;
location / {
proxy_pass http://localhost:3000;
}
}