浏览代码

[SSL] prevent multiple certificates with the same domain

Marcel Hofer 5 年之前
父节点
当前提交
56bc9d45bb
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      data/Dockerfiles/acme/acme.sh

+ 9 - 0
data/Dockerfiles/acme/acme.sh

@@ -283,6 +283,15 @@ while true; do
     declare -a VALIDATED_DOMAINS_SORTED
     declare -a VALIDATED_DOMAINS_SORTED
     VALIDATED_DOMAINS_SORTED=(${VALIDATED_DOMAINS_ARR[0]} $(echo ${VALIDATED_DOMAINS_ARR[@]:1} | xargs -n1 | sort -u | xargs))
     VALIDATED_DOMAINS_SORTED=(${VALIDATED_DOMAINS_ARR[0]} $(echo ${VALIDATED_DOMAINS_ARR[@]:1} | xargs -n1 | sort -u | xargs))
 
 
+    # remove all domain names that are already inside the server certificate (SERVER_SAN_VALIDATED)
+    for domain in "${SERVER_SAN_VALIDATED[@]}"; do
+      for i in "${!VALIDATED_DOMAINS_SORTED[@]}"; do
+        if [[ ${VALIDATED_DOMAINS_SORTED[i]} = $domain ]]; then
+          unset 'VALIDATED_DOMAINS_SORTED[i]'
+        fi
+      done
+    done
+
     if [[ ! -z ${VALIDATED_DOMAINS_SORTED[*]} ]]; then
     if [[ ! -z ${VALIDATED_DOMAINS_SORTED[*]} ]]; then
       CERT_NAME=${VALIDATED_DOMAINS_SORTED[0]}
       CERT_NAME=${VALIDATED_DOMAINS_SORTED[0]}
       VALIDATED_CERTIFICATES+=("${CERT_NAME}")
       VALIDATED_CERTIFICATES+=("${CERT_NAME}")