summaryrefslogtreecommitdiff
path: root/letsencrypt-helpers/make-combined-crt
diff options
context:
space:
mode:
authorPeter Palfrader <peter@palfrader.org>2015-12-31 15:53:27 +0100
committerPeter Palfrader <peter@palfrader.org>2015-12-31 15:53:27 +0100
commita2b7d3d8377e767c73371e3aafbf84d40fa78d27 (patch)
treeb29b687ad38216269b55b045467ddcec10044a70 /letsencrypt-helpers/make-combined-crt
parenta495a8822f58085f94e2d1205aa5c7de56b5ea23 (diff)
rename -apache.crt to -combined.crt, load dh params based on rsa key size, use just .pem if it exists
Diffstat (limited to 'letsencrypt-helpers/make-combined-crt')
-rwxr-xr-xletsencrypt-helpers/make-combined-crt53
1 files changed, 53 insertions, 0 deletions
diff --git a/letsencrypt-helpers/make-combined-crt b/letsencrypt-helpers/make-combined-crt
new file mode 100755
index 0000000..b605765
--- /dev/null
+++ b/letsencrypt-helpers/make-combined-crt
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+set -e
+set -u
+
+cd ~/certs
+
+if [ "$#" != 1 ]; then
+ echo >&2 "Usage: $0 <fqdn>"
+ exit 1
+fi
+
+cn="$1"
+shift
+
+if ! [ -e "$cn.key" ] ; then
+ echo >&2 "$cn.key does not exist."
+ exit 1
+fi
+
+if [ -e "$cn-letsencrypt.pem" ] ; then
+ pem="$cn-letsencrypt.pem"
+ chain="extra/letsencryptauthorityx1.pem"
+elif [ -e "$cn.pem" ] ; then
+ pem="$cn.pem"
+ if [ -e "$cn-chain.pem" ]; then
+ chain="$cn-chain.pem"
+ else
+ chain=""
+ fi
+elif [ -e "$cn-selfsigned.pem" ] ; then
+ pem="$cn-selfsigned.pem"
+ chain=""
+ echo >&2 "Warning: only selfsigned cert available for $cn."
+else
+ echo >&2 "Error: no cert available for $cn."
+ exit 1
+fi
+
+(
+cat "$pem"
+if [ -n "$chain" ]; then
+cat "$chain"
+fi
+
+size=$(openssl rsa < "$cn".key -text -noout | awk -F: '$1 == "Private-Key" {print $2}' | sed -e 's/[^0-9]//g')
+if [ -e extra/dh-"$size".pem ]; then
+ cat extra/dh-"$size".pem;
+else
+ echo >&2 "Warning: No extra/dh-$size.pem file found."
+fi
+
+) > $cn-combined.crt