]> granicus.if.org Git - curl/commitdiff
CURLOPT_PINNEDPUBLICKEY.3: Improve pubkey extraction example
authorJay Satiro <raysatiro@yahoo.com>
Mon, 14 Sep 2015 07:16:04 +0000 (03:16 -0400)
committerJay Satiro <raysatiro@yahoo.com>
Mon, 14 Sep 2015 07:16:04 +0000 (03:16 -0400)
- Show how a certificate can be obtained using OpenSSL.

Bug: https://github.com/bagder/curl/pull/430
Reported-by: Daniel Hwang
docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3

index e3de9f2a8e94f98fc5f6a3747ff4838f9736a397..14c44daf557d24c1c35851702aed38fcb8829dc1 100644 (file)
@@ -59,10 +59,24 @@ if(curl) {
 If you do not have the server's public key file you can extract it from the
 server's certificate.
 .nf
+# retrieve the server's certificate if you don't already have it
+#
+# be sure to examine the certificate to see if it is what you expected
+#
+# Windows-specific:
+# - Use NUL instead of /dev/null.
+# - OpenSSL may wait for input instead of disconnecting. Hit enter.
+# - If you don't have sed, then just copy the certificate into a file:
+#   Lines from -----BEGIN CERTIFICATE----- to -----END CERTIFICATE-----.
+#
+openssl s_client -servername www.test.com -connect www.test.com:443 < /dev/null | sed -n "/-----BEGIN/,/-----END/p" > www.test.com.pem
+
 # extract public key in pem format from certificate
 openssl x509 -in www.test.com.pem -pubkey -noout > www.test.com.pubkey.pem
+
 # convert public key from pem to der
 openssl asn1parse -noout -inform pem -in www.test.com.pubkey.pem -out www.test.com.pubkey.der
+
 # sha256 hash and base64 encode der to string for use
 openssl dgst -sha256 -binary www.test.com.pubkey.der | openssl base64
 .fi