general_site_ssl.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/bash
  2. SITE_CODE=$1
  3. DOMAIN_NAME=$2
  4. # 解析域名
  5. result=$(nslookup $DOMAIN_NAME | grep -Po 'Address: \K[\d.]+')
  6. result_www=$(nslookup www.$DOMAIN_NAME | grep -Po 'Address: \K[\d.]+')
  7. # 判断解析结果是否为空
  8. if [ ! -z "$result" ] && [ ! -z "$result_www" ]; then
  9. #生成SSL证书
  10. #生成位置 /root/.acme.sh/$DOMAIN_NAME
  11. /root/.acme.sh/acme.sh --issue -d $DOMAIN_NAME -d "www.$DOMAIN_NAME" --webroot /usr/local/wwwroot/$DOMAIN_NAME
  12. echo "result:"$result
  13. echo "result_www:"$result_www
  14. elif [ ! -z "$result" ] && [ -z "$result_www" ]; then
  15. /root/.acme.sh/acme.sh --issue -d $DOMAIN_NAME --webroot /usr/local/wwwroot/$DOMAIN_NAME
  16. echo "result":$result
  17. elif [ -z "$result" ] && [ ! -z "$result_www" ]; then
  18. /root/.acme.sh/acme.sh --issue -d "www.$DOMAIN_NAME" --webroot /usr/local/wwwroot/$DOMAIN_NAME
  19. echo "result:"$result
  20. echo "result_www:"$result_www
  21. else
  22. echo "Parsing failed"
  23. fi
  24. #等待30s,确保SSL证书目录生成
  25. sleep 30
  26. if [ -d "/root/.acme.sh/$DOMAIN_NAME" ]; then
  27. fullchain=$(cat /root/.acme.sh/$DOMAIN_NAME/fullchain.cer)
  28. awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "fullchain" n ".pem"}' < /root/.acme.sh/$DOMAIN_NAME/fullchain.cer
  29. Certificate_body=$(cat fullchain.pem)
  30. echo '[start cert.pem]'
  31. echo $Certificate_body
  32. echo '[end cert.pem]'
  33. Certificate_chain=$(cat fullchain1.pem)
  34. Certificate_chain1=$(cat fullchain2.pem)
  35. echo '[start chain.pem]'
  36. echo ${Certificate_chain}" "${Certificate_chain1}
  37. echo '[end chain.pem]'
  38. Certificate_private_key=$(cat /root/.acme.sh/$DOMAIN_NAME/*key)
  39. echo '[start privkey.pem]'
  40. echo $Certificate_private_key
  41. echo '[end privkey.pem]'
  42. rm -rf *.pem
  43. elif [ -d "/root/.acme.sh/${DOMAIN_NAME}_ecc" ]; then
  44. fullchain=$(cat /root/.acme.sh/${DOMAIN_NAME}_ecc/fullchain.cer)
  45. awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "fullchain" n ".pem"}' < /root/.acme.sh/${DOMAIN_NAME}_ecc/fullchain.cer
  46. Certificate_body=$(cat fullchain.pem)
  47. echo '[start cert.pem]'
  48. echo $Certificate_body
  49. echo '[end cert.pem]'
  50. Certificate_chain=$(cat fullchain1.pem)
  51. Certificate_chain1=$(cat fullchain2.pem)
  52. echo '[start chain.pem]'
  53. echo ${Certificate_chain}" "${Certificate_chain1}
  54. echo '[end chain.pem]'
  55. Certificate_private_key=$(cat /root/.acme.sh/${DOMAIN_NAME}_ecc/*key)
  56. echo '[start privkey.pem]'
  57. echo $Certificate_private_key
  58. echo '[end privkey.pem]'
  59. rm -rf *.pem
  60. else
  61. echo "SSL Certificate not found"
  62. fi