Operations Runbooks
First-Time Run
- Import the module.
- Connect to NetScaler with an administrative credential.
- Run a certificate request.
- Confirm the returned status is
Success. - Confirm the NetScaler certkey is
Valid. - Confirm temporary validation objects or TXT records were cleaned up.
Production Renewal
- Reuse the same request parameters.
- Remove
-ForceCertRenewunless a forced replacement is intentional. - Add
-Productionwhen issuing with Let's Encrypt production. - Validate the service binding or Global VPN binding.
- Keep previous certkeys until rollback is no longer needed.
Scheduled Renewal
Use the same command without -ForceCertRenew. NetScalerToolkit evaluates ACME order metadata, certificate validity, and legacy renewal metadata, then skips requests that are not due.
For JSON config based schedules, use:
Existing schedules that call GenLeCertForNS.ps1 can continue to call the wrapper:
See Renewal Behavior for the decision order and dynamic lifetime fallback.
DNS Plugin Change
- Update the Posh-ACME plugin name and
-DNSParamshashtable. - Use a fresh hostname when retrying repeated DNS-01 changes.
- Increase
-DNSWaitTimeif public resolvers observe stale TXT values. - Inspect provider records after failures.
Interrupted HTTP Validation Run
- Reuse the validation object names from the failed request.
- Run
Request-NSACMECertificate -CleanADC. - Confirm the temporary responder, LB, service, and CS policy/action objects are removed.
- Retry the request.