opencode-skills-collection 4.0.68 → 4.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +304 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ssl-tls-management
|
|
3
|
+
description: Manage SSL/TLS certificates with Let's Encrypt and internal PKI. Configure
|
|
4
|
+
secure HTTPS, certificate renewal, and cipher suites. Use when implementing secure
|
|
5
|
+
communications.
|
|
6
|
+
category: security
|
|
7
|
+
risk: critical
|
|
8
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
10
|
+
source_type: community
|
|
11
|
+
date_added: '2026-09-20'
|
|
12
|
+
license: MIT
|
|
13
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
14
|
+
compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
|
|
15
|
+
authorized scope for any active assessment. Docs-only; helper scripts and templates
|
|
16
|
+
not bundled.
|
|
17
|
+
metadata:
|
|
18
|
+
author: devops-skills
|
|
19
|
+
version: '1.0'
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# SSL/TLS Management
|
|
23
|
+
|
|
24
|
+
Manage certificates and secure communications across web servers, Kubernetes clusters, and internal services.
|
|
25
|
+
|
|
26
|
+
## Prerequisites
|
|
27
|
+
|
|
28
|
+
- Domain name with DNS control for public certificates
|
|
29
|
+
- Root/sudo access on web servers
|
|
30
|
+
- `certbot` installed for Let's Encrypt
|
|
31
|
+
- `openssl` CLI available (installed by default on most Linux distros)
|
|
32
|
+
- Kubernetes cluster with Helm for cert-manager deployment
|
|
33
|
+
- Understanding of X.509 certificate chain of trust
|
|
34
|
+
|
|
35
|
+
## Let's Encrypt with Certbot
|
|
36
|
+
|
|
37
|
+
### Installation and Certificate Issuance
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Install certbot (Ubuntu/Debian)
|
|
41
|
+
apt update && apt install -y certbot python3-certbot-nginx
|
|
42
|
+
|
|
43
|
+
# Obtain certificate for nginx (interactive)
|
|
44
|
+
certbot --nginx -d example.com -d www.example.com
|
|
45
|
+
|
|
46
|
+
# Non-interactive mode for automation
|
|
47
|
+
certbot certonly --nginx \
|
|
48
|
+
-d example.com \
|
|
49
|
+
-d www.example.com \
|
|
50
|
+
--non-interactive \
|
|
51
|
+
--agree-tos \
|
|
52
|
+
--email admin@example.com
|
|
53
|
+
|
|
54
|
+
# Standalone mode (when no web server is running)
|
|
55
|
+
certbot certonly --standalone \
|
|
56
|
+
-d example.com \
|
|
57
|
+
--preferred-challenges http
|
|
58
|
+
|
|
59
|
+
# DNS challenge (for wildcard certs)
|
|
60
|
+
certbot certonly --manual \
|
|
61
|
+
--preferred-challenges dns \
|
|
62
|
+
-d "*.example.com" \
|
|
63
|
+
-d example.com
|
|
64
|
+
|
|
65
|
+
# Using DNS plugin for automation (Cloudflare example)
|
|
66
|
+
pip install certbot-dns-cloudflare
|
|
67
|
+
cat > /etc/letsencrypt/cloudflare.ini << 'EOF'
|
|
68
|
+
dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN
|
|
69
|
+
EOF
|
|
70
|
+
chmod 600 /etc/letsencrypt/cloudflare.ini
|
|
71
|
+
|
|
72
|
+
certbot certonly --dns-cloudflare \
|
|
73
|
+
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
|
|
74
|
+
-d "*.example.com" \
|
|
75
|
+
-d example.com
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Renewal Automation
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Test renewal
|
|
82
|
+
certbot renew --dry-run
|
|
83
|
+
|
|
84
|
+
# Systemd timer (preferred over cron)
|
|
85
|
+
cat > /etc/systemd/system/certbot-renewal.service << 'EOF'
|
|
86
|
+
[Unit]
|
|
87
|
+
Description=Certbot certificate renewal
|
|
88
|
+
After=network-online.target
|
|
89
|
+
|
|
90
|
+
[Service]
|
|
91
|
+
Type=oneshot
|
|
92
|
+
ExecStart=/usr/bin/certbot renew --quiet --deploy-hook "systemctl reload nginx"
|
|
93
|
+
EOF
|
|
94
|
+
|
|
95
|
+
cat > /etc/systemd/system/certbot-renewal.timer << 'EOF'
|
|
96
|
+
[Unit]
|
|
97
|
+
Description=Run certbot renewal twice daily
|
|
98
|
+
|
|
99
|
+
[Timer]
|
|
100
|
+
OnCalendar=*-*-* 00,12:00:00
|
|
101
|
+
RandomizedDelaySec=3600
|
|
102
|
+
Persistent=true
|
|
103
|
+
|
|
104
|
+
[Install]
|
|
105
|
+
WantedBy=timers.target
|
|
106
|
+
EOF
|
|
107
|
+
|
|
108
|
+
systemctl enable --now certbot-renewal.timer
|
|
109
|
+
|
|
110
|
+
# Verify timer is active
|
|
111
|
+
systemctl list-timers certbot-renewal.timer
|
|
112
|
+
|
|
113
|
+
# Renewal hooks for post-renewal actions
|
|
114
|
+
mkdir -p /etc/letsencrypt/renewal-hooks/deploy
|
|
115
|
+
cat > /etc/letsencrypt/renewal-hooks/deploy/reload-services.sh << 'HOOK'
|
|
116
|
+
#!/bin/bash
|
|
117
|
+
systemctl reload nginx
|
|
118
|
+
# Also reload other services using the cert
|
|
119
|
+
systemctl reload haproxy 2>/dev/null || true
|
|
120
|
+
HOOK
|
|
121
|
+
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-services.sh
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## cert-manager for Kubernetes
|
|
125
|
+
|
|
126
|
+
### Installation
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Install with Helm
|
|
130
|
+
helm repo add jetstack https://charts.jetstack.io
|
|
131
|
+
helm repo update
|
|
132
|
+
|
|
133
|
+
helm install cert-manager jetstack/cert-manager \
|
|
134
|
+
--namespace cert-manager \
|
|
135
|
+
--create-namespace \
|
|
136
|
+
--version v1.14.0 \
|
|
137
|
+
--set installCRDs=true \
|
|
138
|
+
--set prometheus.enabled=true
|
|
139
|
+
|
|
140
|
+
# Verify installation
|
|
141
|
+
kubectl get pods -n cert-manager
|
|
142
|
+
kubectl get crds | grep cert-manager
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### ClusterIssuer Configurations
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
# letsencrypt-staging (use for testing first)
|
|
149
|
+
apiVersion: cert-manager.io/v1
|
|
150
|
+
kind: ClusterIssuer
|
|
151
|
+
metadata:
|
|
152
|
+
name: letsencrypt-staging
|
|
153
|
+
spec:
|
|
154
|
+
acme:
|
|
155
|
+
server: https://acme-staging-v02.api.letsencrypt.org/directory
|
|
156
|
+
email: admin@example.com
|
|
157
|
+
privateKeySecretRef:
|
|
158
|
+
name: letsencrypt-staging
|
|
159
|
+
solvers:
|
|
160
|
+
- http01:
|
|
161
|
+
ingress:
|
|
162
|
+
class: nginx
|
|
163
|
+
---
|
|
164
|
+
# letsencrypt-prod
|
|
165
|
+
apiVersion: cert-manager.io/v1
|
|
166
|
+
kind: ClusterIssuer
|
|
167
|
+
metadata:
|
|
168
|
+
name: letsencrypt-prod
|
|
169
|
+
spec:
|
|
170
|
+
acme:
|
|
171
|
+
server: https://acme-v02.api.letsencrypt.org/directory
|
|
172
|
+
email: admin@example.com
|
|
173
|
+
privateKeySecretRef:
|
|
174
|
+
name: letsencrypt-prod
|
|
175
|
+
solvers:
|
|
176
|
+
- http01:
|
|
177
|
+
ingress:
|
|
178
|
+
class: nginx
|
|
179
|
+
---
|
|
180
|
+
# DNS challenge solver (for wildcard certs with Cloudflare)
|
|
181
|
+
apiVersion: cert-manager.io/v1
|
|
182
|
+
kind: ClusterIssuer
|
|
183
|
+
metadata:
|
|
184
|
+
name: letsencrypt-prod-dns
|
|
185
|
+
spec:
|
|
186
|
+
acme:
|
|
187
|
+
server: https://acme-v02.api.letsencrypt.org/directory
|
|
188
|
+
email: admin@example.com
|
|
189
|
+
privateKeySecretRef:
|
|
190
|
+
name: letsencrypt-prod-dns
|
|
191
|
+
solvers:
|
|
192
|
+
- dns01:
|
|
193
|
+
cloudflare:
|
|
194
|
+
apiTokenSecretRef:
|
|
195
|
+
name: cloudflare-api-token
|
|
196
|
+
key: api-token
|
|
197
|
+
---
|
|
198
|
+
# Self-signed CA issuer for internal services
|
|
199
|
+
apiVersion: cert-manager.io/v1
|
|
200
|
+
kind: ClusterIssuer
|
|
201
|
+
metadata:
|
|
202
|
+
name: selfsigned-ca
|
|
203
|
+
spec:
|
|
204
|
+
selfSigned: {}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Certificate Resources
|
|
208
|
+
|
|
209
|
+
```yaml
|
|
210
|
+
# Public-facing certificate
|
|
211
|
+
apiVersion: cert-manager.io/v1
|
|
212
|
+
kind: Certificate
|
|
213
|
+
metadata:
|
|
214
|
+
name: example-cert
|
|
215
|
+
namespace: default
|
|
216
|
+
spec:
|
|
217
|
+
secretName: example-tls
|
|
218
|
+
issuerRef:
|
|
219
|
+
name: letsencrypt-prod
|
|
220
|
+
kind: ClusterIssuer
|
|
221
|
+
dnsNames:
|
|
222
|
+
- example.com
|
|
223
|
+
- www.example.com
|
|
224
|
+
duration: 2160h # 90 days
|
|
225
|
+
renewBefore: 720h # 30 days before expiry
|
|
226
|
+
---
|
|
227
|
+
# Wildcard certificate
|
|
228
|
+
apiVersion: cert-manager.io/v1
|
|
229
|
+
kind: Certificate
|
|
230
|
+
metadata:
|
|
231
|
+
name: wildcard-cert
|
|
232
|
+
namespace: default
|
|
233
|
+
spec:
|
|
234
|
+
secretName: wildcard-tls
|
|
235
|
+
issuerRef:
|
|
236
|
+
name: letsencrypt-prod-dns
|
|
237
|
+
kind: ClusterIssuer
|
|
238
|
+
dnsNames:
|
|
239
|
+
- "*.example.com"
|
|
240
|
+
- example.com
|
|
241
|
+
---
|
|
242
|
+
# Ingress with automatic TLS
|
|
243
|
+
apiVersion: networking.k8s.io/v1
|
|
244
|
+
kind: Ingress
|
|
245
|
+
metadata:
|
|
246
|
+
name: example-ingress
|
|
247
|
+
annotations:
|
|
248
|
+
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
249
|
+
spec:
|
|
250
|
+
tls:
|
|
251
|
+
- hosts:
|
|
252
|
+
- example.com
|
|
253
|
+
secretName: example-tls
|
|
254
|
+
rules:
|
|
255
|
+
- host: example.com
|
|
256
|
+
http:
|
|
257
|
+
paths:
|
|
258
|
+
- path: /
|
|
259
|
+
pathType: Prefix
|
|
260
|
+
backend:
|
|
261
|
+
service:
|
|
262
|
+
name: web
|
|
263
|
+
port:
|
|
264
|
+
number: 80
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## OpenSSL Commands Reference
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
# Generate a private key
|
|
271
|
+
openssl genrsa -out server.key 4096
|
|
272
|
+
|
|
273
|
+
# Generate an ECDSA key (preferred for performance)
|
|
274
|
+
openssl ecparam -genkey -name prime256v1 -out server-ec.key
|
|
275
|
+
|
|
276
|
+
# Generate a CSR (Certificate Signing Request)
|
|
277
|
+
openssl req -new -key server.key -out server.csr \
|
|
278
|
+
-subj "/C=US/ST=California/L=San Francisco/O=Acme Corp/CN=example.com"
|
|
279
|
+
|
|
280
|
+
# Generate CSR with SAN (Subject Alternative Names)
|
|
281
|
+
openssl req -new -key server.key -out server.csr -config <(cat <<EOF
|
|
282
|
+
[req]
|
|
283
|
+
default_bits = 4096
|
|
284
|
+
distinguished_name = dn
|
|
285
|
+
req_extensions = san
|
|
286
|
+
prompt = no
|
|
287
|
+
|
|
288
|
+
[dn]
|
|
289
|
+
CN = example.com
|
|
290
|
+
O = Acme Corp
|
|
291
|
+
C = US
|
|
292
|
+
|
|
293
|
+
[san]
|
|
294
|
+
subjectAltName = DNS:example.com,DNS:www.example.com,DNS:api.example.com
|
|
295
|
+
EOF
|
|
296
|
+
)
|
|
297
|
+
|
|
298
|
+
# Generate self-signed certificate (development/testing)
|
|
299
|
+
openssl req -x509 -nodes -days 365 -newkey rsa:4096 \
|
|
300
|
+
-keyout selfsigned.key -out selfsigned.crt \
|
|
301
|
+
-subj "/CN=localhost"
|
|
302
|
+
|
|
303
|
+
# View certificate details
|
|
304
|
+
openssl x509 -in cert.pem -noout -text
|
|
305
|
+
|
|
306
|
+
# Check certificate expiration date
|
|
307
|
+
openssl x509 -in cert.pem -noout -dates
|
|
308
|
+
|
|
309
|
+
# Check remote certificate
|
|
310
|
+
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
|
|
311
|
+
openssl x509 -noout -dates -subject -issuer
|
|
312
|
+
|
|
313
|
+
# Verify certificate chain
|
|
314
|
+
openssl verify -CAfile ca-bundle.crt server.crt
|
|
315
|
+
|
|
316
|
+
# Check certificate chain from remote server
|
|
317
|
+
openssl s_client -connect example.com:443 -showcerts 2>/dev/null | \
|
|
318
|
+
openssl x509 -noout -text
|
|
319
|
+
|
|
320
|
+
# Convert PEM to PKCS12
|
|
321
|
+
openssl pkcs12 -export -out cert.pfx -inkey server.key -in server.crt -certfile ca.crt
|
|
322
|
+
|
|
323
|
+
# Convert PKCS12 to PEM
|
|
324
|
+
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
|
|
325
|
+
|
|
326
|
+
# Test TLS connection and cipher negotiation
|
|
327
|
+
openssl s_client -connect example.com:443 -tls1_3
|
|
328
|
+
openssl s_client -connect example.com:443 -cipher 'ECDHE-RSA-AES256-GCM-SHA384'
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Strong TLS Configuration
|
|
332
|
+
|
|
333
|
+
### Nginx
|
|
334
|
+
|
|
335
|
+
```nginx
|
|
336
|
+
server {
|
|
337
|
+
listen 443 ssl http2;
|
|
338
|
+
server_name example.com;
|
|
339
|
+
|
|
340
|
+
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
|
|
341
|
+
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
|
|
342
|
+
|
|
343
|
+
# Protocol versions
|
|
344
|
+
ssl_protocols TLSv1.2 TLSv1.3;
|
|
345
|
+
|
|
346
|
+
# Cipher suites (TLS 1.2)
|
|
347
|
+
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
|
|
348
|
+
ssl_prefer_server_ciphers off;
|
|
349
|
+
|
|
350
|
+
# Session settings
|
|
351
|
+
ssl_session_timeout 1d;
|
|
352
|
+
ssl_session_cache shared:SSL:10m;
|
|
353
|
+
ssl_session_tickets off;
|
|
354
|
+
|
|
355
|
+
# OCSP stapling
|
|
356
|
+
ssl_stapling on;
|
|
357
|
+
ssl_stapling_verify on;
|
|
358
|
+
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
|
|
359
|
+
resolver 8.8.8.8 8.8.4.4 valid=300s;
|
|
360
|
+
resolver_timeout 5s;
|
|
361
|
+
|
|
362
|
+
# Security headers
|
|
363
|
+
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
|
|
364
|
+
add_header X-Content-Type-Options nosniff always;
|
|
365
|
+
add_header X-Frame-Options DENY always;
|
|
366
|
+
|
|
367
|
+
# HTTP to HTTPS redirect (in separate server block)
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
server {
|
|
371
|
+
listen 80;
|
|
372
|
+
server_name example.com www.example.com;
|
|
373
|
+
return 301 https://$host$request_uri;
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### Apache
|
|
378
|
+
|
|
379
|
+
```apache
|
|
380
|
+
<VirtualHost *:443>
|
|
381
|
+
ServerName example.com
|
|
382
|
+
|
|
383
|
+
SSLEngine on
|
|
384
|
+
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
|
|
385
|
+
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
|
|
386
|
+
|
|
387
|
+
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
|
|
388
|
+
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
|
|
389
|
+
SSLHonorCipherOrder off
|
|
390
|
+
|
|
391
|
+
SSLUseStapling on
|
|
392
|
+
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
|
|
393
|
+
|
|
394
|
+
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
|
|
395
|
+
</VirtualHost>
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
## Contents
|
|
400
|
+
|
|
401
|
+
- [Certificate Monitoring](references/details.md)
|
|
402
|
+
- [Troubleshooting](references/details.md)
|
|
403
|
+
- [Best Practices](references/details.md)
|
|
404
|
+
- [Related Skills](references/details.md)
|
|
405
|
+
|
|
406
|
+
## When to Use This Skill
|
|
407
|
+
|
|
408
|
+
Use this skill when:
|
|
409
|
+
- Setting up HTTPS for a new web application
|
|
410
|
+
- Automating certificate renewal with Let's Encrypt
|
|
411
|
+
- Deploying cert-manager in Kubernetes
|
|
412
|
+
- Configuring TLS for internal service-to-service communication
|
|
413
|
+
- Auditing cipher suites and TLS versions for compliance
|
|
414
|
+
- Responding to an expiring or compromised certificate
|
|
415
|
+
|
|
416
|
+
## Limitations
|
|
417
|
+
|
|
418
|
+
- Apply guidance only within authorized scope; test destructive steps in non-production first.
|
|
419
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
420
|
+
|
|
421
|
+
### Example
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
# Read-only first: inventory before any active step.
|
|
425
|
+
which <tool> && <tool> --help | head -n 20
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Details (moved from SKILL.md)
|
|
2
|
+
|
|
3
|
+
> Extended reference content for `ssl-tls-management`, kept under `references/` so the entrypoint stays within the audit budget.
|
|
4
|
+
|
|
5
|
+
## Certificate Monitoring
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
#!/bin/bash
|
|
9
|
+
# cert-monitor.sh - Monitor certificate expiration across hosts
|
|
10
|
+
|
|
11
|
+
WARN_DAYS=30
|
|
12
|
+
CRIT_DAYS=7
|
|
13
|
+
HOSTS=(
|
|
14
|
+
"example.com:443"
|
|
15
|
+
"api.example.com:443"
|
|
16
|
+
"admin.example.com:443"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
for host in "${HOSTS[@]}"; do
|
|
20
|
+
expiry=$(echo | openssl s_client -connect "$host" -servername "${host%%:*}" 2>/dev/null | \
|
|
21
|
+
openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
|
|
22
|
+
|
|
23
|
+
if [ -z "$expiry" ]; then
|
|
24
|
+
echo "ERROR: Cannot connect to $host"
|
|
25
|
+
continue
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
expiry_epoch=$(date -d "$expiry" +%s)
|
|
29
|
+
now_epoch=$(date +%s)
|
|
30
|
+
days_left=$(( (expiry_epoch - now_epoch) / 86400 ))
|
|
31
|
+
|
|
32
|
+
if [ "$days_left" -le "$CRIT_DAYS" ]; then
|
|
33
|
+
echo "CRITICAL: $host expires in $days_left days ($expiry)"
|
|
34
|
+
elif [ "$days_left" -le "$WARN_DAYS" ]; then
|
|
35
|
+
echo "WARNING: $host expires in $days_left days ($expiry)"
|
|
36
|
+
else
|
|
37
|
+
echo "OK: $host expires in $days_left days ($expiry)"
|
|
38
|
+
fi
|
|
39
|
+
done
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Prometheus cert-manager Metrics
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
# Alert on expiring certificates in Kubernetes
|
|
46
|
+
groups:
|
|
47
|
+
- name: cert-manager
|
|
48
|
+
rules:
|
|
49
|
+
- alert: CertificateExpiringSoon
|
|
50
|
+
expr: certmanager_certificate_expiration_timestamp_seconds - time() < 7 * 24 * 3600
|
|
51
|
+
for: 1h
|
|
52
|
+
labels:
|
|
53
|
+
severity: critical
|
|
54
|
+
annotations:
|
|
55
|
+
summary: "Certificate {{ $labels.name }} expires in less than 7 days"
|
|
56
|
+
|
|
57
|
+
- alert: CertificateNotReady
|
|
58
|
+
expr: certmanager_certificate_ready_status{condition="True"} == 0
|
|
59
|
+
for: 15m
|
|
60
|
+
labels:
|
|
61
|
+
severity: warning
|
|
62
|
+
annotations:
|
|
63
|
+
summary: "Certificate {{ $labels.name }} is not ready"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## Troubleshooting
|
|
68
|
+
|
|
69
|
+
| Problem | Cause | Solution |
|
|
70
|
+
|---------|-------|----------|
|
|
71
|
+
| Certbot fails with "connection refused" | Port 80 blocked by firewall | Open port 80 for ACME HTTP-01 challenge |
|
|
72
|
+
| "Too many certificates already issued" | Let's Encrypt rate limit hit | Use staging endpoint for testing; wait for rate limit reset |
|
|
73
|
+
| cert-manager challenge stuck pending | Ingress or DNS misconfigured | Check `kubectl describe challenge`; verify DNS records |
|
|
74
|
+
| Mixed content warnings | HTTP resources on HTTPS page | Update all asset URLs to HTTPS; use CSP headers |
|
|
75
|
+
| OCSP stapling not working | Resolver not configured | Add `resolver` directive in nginx; verify outbound DNS |
|
|
76
|
+
| Intermediate cert missing | Incomplete chain served | Use `fullchain.pem` not `cert.pem`; verify with `openssl s_client -showcerts` |
|
|
77
|
+
| TLS handshake failure | Client doesn't support offered ciphers | Add TLS 1.2 support; check cipher suite compatibility |
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
## Best Practices
|
|
81
|
+
|
|
82
|
+
- Automate renewal with systemd timers or cert-manager
|
|
83
|
+
- Monitor expiration dates with alerting (30-day and 7-day warnings)
|
|
84
|
+
- Use only TLS 1.2 and TLS 1.3
|
|
85
|
+
- Enable HSTS with long max-age and includeSubDomains
|
|
86
|
+
- Enable OCSP stapling to improve handshake performance
|
|
87
|
+
- Use ECDSA keys for better performance where possible
|
|
88
|
+
- Test configuration with SSL Labs (ssllabs.com/ssltest)
|
|
89
|
+
- Keep private keys secure with proper file permissions (0600)
|
|
90
|
+
- Rotate certificates before expiry, not after
|
|
91
|
+
- Maintain a certificate inventory across all services
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## Related Skills
|
|
95
|
+
|
|
96
|
+
- hashicorp-vault (`hashicorp-vault`) - PKI management
|
|
97
|
+
- waf-setup (`waf-setup`) - Web protection
|
|
98
|
+
- zero-trust (`zero-trust`) - mTLS and identity-based access
|
|
99
|
+
|