Phase 0: Recon

Phase 0: Recon — Current Certificate Inventory

Quick Inventory

All ISE node certs
netapi ise get-nodes --certs

Per-Node, Per-Port Certificate Check

Admin (443)
openssl s_client -connect {ise-pan-fqdn}:443 </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -serial -fingerprint -sha256
EAP Authentication (1812)
openssl s_client -connect {ise-pan-fqdn}:1812 -starttls radius </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates
Portal (8443)
openssl s_client -connect {ise-pan-fqdn}:8443 </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates
pxGrid (8910)
openssl s_client -connect {ise-pan-fqdn}:8910 </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates

Days Until Expiry (All Nodes, All Ports)

for host in {ise-pan-fqdn} {ise-psn1-fqdn} {ise-psn2-fqdn}; do
  for port in 443 8443 1812 8910; do
    expiry=$(openssl s_client -connect "$host:$port" </dev/null 2>/dev/null \
      | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
    if [[ -n "$expiry" ]]; then
      days=$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 ))
      printf "%-45s port:%-5s %s days (%s)\n" "$host" "$port" "$days" "$expiry"
    else
      printf "%-45s port:%-5s CONNECT FAILED\n" "$host" "$port"
    fi
  done
done

SAN Verification (Confirm Wildcard Is in SAN, NOT CN)

# Subject CN — should be a specific FQDN like access2.ise.chla.org
openssl s_client -connect {ise-pan-fqdn}:443 </dev/null 2>/dev/null \
  | openssl x509 -noout -subject

# SAN — should contain *.ise.chla.org
openssl s_client -connect {ise-pan-fqdn}:443 </dev/null 2>/dev/null \
  | openssl x509 -noout -ext subjectAltName

Full Certificate Details

openssl s_client -connect {ise-pan-fqdn}:443 </dev/null 2>/dev/null \
  | openssl x509 -noout -text \
  | grep -A1 'Subject:\|Issuer:\|Not Before\|Not After\|Subject Alternative\|Key Usage\|Serial'

Chain Validation

openssl s_client -connect {ise-pan-fqdn}:443 -showcerts </dev/null 2>/dev/null \
  | awk '/BEGIN/,/END/{if(/BEGIN/)n++; print > "/tmp/ise-chain-cert-"n".pem"}'

for f in /tmp/ise-chain-cert-*.pem; do
  echo "=== $f ==="
  openssl x509 -in "$f" -noout -subject -issuer -dates
  echo
done

Certificate Inventory Table

Fill in after running recon:

Node Role CN SAN Expiry Days Left

pan

Admin (443)

pan

EAP (1812)

pan

Portal (8443)

pan

pxGrid (8910)

psn1

Admin (443)

psn1

EAP (1812)