mac.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. [[ $# -ge 1 ]] || exit 1
  3. CERT_URL="${1:-}"
  4. CERT_PWD="${2:-}"
  5. # DO NOT EDIT
  6. [[ -n "${CERT_URL}" ]] || exit 1
  7. [[ -n "${CERT_PWD}" ]] && Mode=0 || Mode=1
  8. USER_Home=`echo "$HOME"`
  9. [[ "$(sudo whoami)" == "root" ]] || exit 1
  10. [[ -e "${USER_Home}/.cisco" ]] && rm -rf "${USER_Home}/.cisco"
  11. [[ -e "${USER_Home}/.anyconnect" ]] && rm -rf "${USER_Home}/.anyconnect"
  12. cat >"${USER_Home}/.anyconnect"<<EOF
  13. <?xml version="1.0" encoding="UTF-8"?>
  14. <AnyConnectPreferences>
  15. <DefaultUser></DefaultUser>
  16. <DefaultSecondUser></DefaultSecondUser>
  17. <ClientCertificateThumbprint></ClientCertificateThumbprint>
  18. <MultipleClientCertificateThumbprints></MultipleClientCertificateThumbprints>
  19. <ServerCertificateThumbprint></ServerCertificateThumbprint>
  20. <DefaultHostName></DefaultHostName>
  21. <DefaultHostAddress></DefaultHostAddress>
  22. <DefaultGroup>Default</DefaultGroup>
  23. <ProxyHost></ProxyHost>
  24. <ProxyPort></ProxyPort>
  25. <SDITokenType>none</SDITokenType>
  26. <ControllablePreferences>
  27. <AutoConnectOnStart>true</AutoConnectOnStart>
  28. <LocalLanAccess>true</LocalLanAccess>
  29. <BlockUntrustedServers>false</BlockUntrustedServers>
  30. <DisableCaptivePortalDetection>true</DisableCaptivePortalDetection></ControllablePreferences>
  31. </AnyConnectPreferences>
  32. EOF
  33. [[ -f "${CERT_URL}" ]] && cp -f "${CERT_URL}" "/tmp/MacOS.p12" || curl -ksSL -H "User-Agent: wget/1.0" -o "/tmp/MacOS.p12" "${CERT_URL}"
  34. if [[ -f "/tmp/MacOS.p12" ]]; then
  35. if [[ "$Mode" == "0" ]]; then
  36. security import "/tmp/MacOS.p12" -P "${CERT_PWD}"
  37. rm -rf "/tmp/MacOS.p12"
  38. elif [[ "$Mode" == "1" ]]; then
  39. openssl pkcs12 -in "/tmp/MacOS.p12" -nodes -nokeys -clcerts -out "/tmp/MacOS_Cert.pem" -password pass:
  40. openssl pkcs12 -in "/tmp/MacOS.p12" -nodes -nocerts -out "/tmp/MacOS_Key.pem" -password pass:
  41. openssl pkcs12 -in "/tmp/MacOS.p12" -nodes -nokeys -cacerts -out "/tmp/MacOS_CA.pem" -password pass:
  42. openssl pkcs12 -export -inkey "/tmp/MacOS_Key.pem" -in "/tmp/MacOS_Cert.pem" -certfile "/tmp/MacOS_CA.pem" -out "/tmp/MacOS_New.p12" -passout pass:New
  43. security import "/tmp/MacOS_New.p12" -P "New"
  44. else
  45. exit 1
  46. fi
  47. fi