Missing GlobalSign Root R46 in bundled CA store causes SSL verification failure
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
Direzione di ricerca
L’issue indica che manca GlobalSign Root R46 nel bundle CA incluso in awscli/botocore/cacert.pem. Inizia verificando da dove proviene questo file e se il certificato è presente nel bundle CA upstream. Il lavoro sarà completato quando il bundle incluso conterrà la root CA attendibile e la catena di certificati dell’endpoint segnalato verrà convalidata senza un bundle CA personalizzato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
When connecting to S3-compatible endpoints (or custom AWS API endpoints) whose SSL/TLS certificates chain up to the GlobalSign Root R46 CA, AWS CLI v2 fails with [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain.
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
AWS CLI should successfully validate the TLS certificate chain when connecting to endpoints using modern GlobalSign R46 root certificates without requiring manual injection of custom CA files via AWS_CA_BUNDLE or --ca-bundle.
Current Behavior
Because AWS CLI v2 uses an isolated Python runtime with its own bundled CA store (cacert.pem via botocore), it does not consult the OS trust stores (Windows CryptoAPI or Linux system certificates) unless explicitly overridden via AWS_CA_BUNDLE. Since GlobalSign Root R46 is missing from the bundled cacert.pem, any connection to endpoints using certificates issued under this root fails out of the box.
Reproduction Steps
Environment
- AWS CLI Version: aws-cli/2.37.x – aws-cli/2.39.x
- OS: Linux (Ubuntu 24.04 / Debian 12) & Windows Server
- Bundled CA Paths affected:
- Linux: /opt/aws/dist/awscli/botocore/cacert.pem
- Windows: C:\Program Files\Amazon\AWSCLIV2\awscli\botocore\cacert.pem
Steps to Reproduce
Run any command against an endpoint utilizing a GlobalSign Root R46 certificate chain:
Bash
aws s3 --endpoint-url https://<custom-s3-endpoint> ls s3://<bucket-name> --debug
Debug Log Output
DEBUG - Certificate path: /opt/aws/dist/awscli/botocore/cacert.pem
DEBUG - Starting new HTTPS connection (1): <endpoint>:443
DEBUG - Exception received when sending HTTP request.
...
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1082)
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1082)
botocore.exceptions.SSLError: SSL validation failed for https://<endpoint>/... [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1082)
Possible Solution
Please consider updating the bundled cacert.pem in botocore / AWS CLI distributions to include GlobalSign Root R46 (or synchronizing with the upstream CA store that includes this root).
Additional Information/Context
Root Cause & Certificate Details
The server presents a valid certificate chain:
- Server Cert: CN = *.domain.com
- Intermediate CA: CN = GlobalSign GCC R46 DV TLS CA 2025, O = GlobalSign nv-sa, C = BE
- Root CA: CN = GlobalSign Root R46, O = GlobalSign nv-sa, C = BE
While older GlobalSign roots (R1, R3) are present in the bundled cacert.pem, GlobalSign Root R46 is absent.
Root Certificate Details:
- Subject / Issuer: C = BE, O = GlobalSign nv-sa, CN = GlobalSign Root R46
- Validity: Mar 20 00:00:00 2019 GMT – Mar 20 00:00:00 2046 GMT
- Key: RSA 4096 bit, SHA-384
-----BEGIN CERTIFICATE-----
MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA
MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD
VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy
MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt
c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ
OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG
vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud
316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo
0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE
y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF
zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE
+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN
I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs
x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa
ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC
4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4
7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg
JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti
2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk
pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF
FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt
rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk
ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5
u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP
4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6
N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3
vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6
-----END CERTIFICATE-----
CLI version used
aws-cli/2.37.x – aws-cli/2.39.x
Environment details (OS name and version, etc.)
Linux (Ubuntu 24.04 / Debian 12) & Windows Server
- Lingua principale
- Python
- Stelle
- 17.4k
- Fork
- 4.8k
- Merge medio
- 4g 3h
- PR unite (30g)
- 64
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aws/aws-cli
-
feature-request login p2
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
aws/aws-cli#10739 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
aws history show/list: UnboundLocalError instead of clear error when pager fails to startForse già presa @Adityaj0 l’ha presa 85 giorni fa. Apertaneeds-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 2 giorni
-
CodeArtifact login: auth token leaked unredacted in CommandFailedError via subprocess stderrForse già presa @PANYAMHEMANTH l’ha presa 7 giorni fa. Apertacodeartifact login investigating p2
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 2 giorni
-
Refactor: drop redundant list() wrapper around sorted() in formatter.py/text.pyForse già presa @Adityaj0 l’ha presa 88 giorni fa. Apertafeature-request p3
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
aws/aws-cli#10568 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
aws configure set s3.* can raise UnboundLocalError when updating nested config blocksForse già presa @fallintoplace l’ha presa 171 giorni fa. Apertabug configure p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
aws/aws-cli#10348 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Issue simili
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
gke-labs/kube-agents#5671 ·
I maintainer di solito rispondono entro 1 giorno
-
docs(auth): Method B step 4 should tell users to tick "Use this client for an AI-powered agent"Apertadocumentation next-release v0.9.6
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
khuisman/mcp-gee-sweet#1446 ·
I maintainer di solito rispondono entro 1 giorno
-
In-box secret files written before their chmod: lc-creds, stacks tee, and the workspace tokenApertamodel:sonnet runtime:claude security size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
FootprintAI/Containarium#3671 ·
I maintainer di solito rispondono entro 1 giorno
-
HolidayBase: reassigning `language` does not re-initialize translations or re-populate holidaysForse già presa @shikhabhadoria l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
vacanza/holidays#4116 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug CLI exec
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno