]> git.street.me.uk Git - andy/dehydrated.git/commitdiff
output CA cert for signcsr command (fixes #150)
authorLukas Schauer <lukas@schauer.so>
Thu, 26 May 2016 13:41:25 +0000 (15:41 +0200)
committerLukas Schauer <lukas@schauer.so>
Thu, 26 May 2016 13:44:59 +0000 (15:44 +0200)
letsencrypt.sh

index 0b8810bc6ec0782a9747bd8303255d0a959c81f3..9529c80c2ef4b179e5d64fb622024cb556d28324 100755 (executable)
@@ -667,7 +667,28 @@ command_sign_csr() {
     _exiterr "Could not read certificate signing request ${csrfile}"
   fi
 
-  sign_csr "$(< "${csrfile}" )"
+  # gen cert
+  certfile="$(_mktemp)"
+  sign_csr "$(< "${csrfile}" )" 3> "${certfile}"
+
+  # get and convert ca cert
+  chainfile="$(_mktemp)"
+  http_request get "$(openssl x509 -in "${certfile}" -noout -text | grep 'CA Issuers - URI:' | cut -d':' -f2-)" > "${chainfile}"
+
+  if ! grep -q "BEGIN CERTIFICATE" "${chainfile}"; then
+    openssl x509 -inform DER -in "${chainfile}" -outform PEM -out "${chainfile}"
+  fi
+
+  # output full chain
+  echo "# CERT #" >&3
+  cat "${certfile}" >&3
+  echo >&3
+  echo "# CHAIN #" >&3
+  cat "${chainfile}" >&3
+
+  # cleanup
+  rm "${certfile}"
+  rm "${chainfile}"
 
   exit 0
 }