# False SSL validation failures for macOS

**URL:** <https://gramps.discourse.group/t/false-ssl-validation-failures-for-macos/9740>\
**Category:** Development\
**Created:** [July 22, 2026, 2:53pm UTC](https://gramps.discourse.group/t/false-ssl-validation-failures-for-macos/9740 "2026-07-22T14:53:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [July 22, 2026, 2:53pm UTC](https://gramps.discourse.group/t/false-ssl-validation-failures-for-macos/9740/1 "2026-07-22T14:53:01Z")

</div>

I am experimenting with validating a https URL within Gramps. On Linux and Windows, the validation worked correctly and correctly recognized when internet connectivity was offline.

However, on macOS it claimed SSL failures.

This might affect the upcoming **FamilySearch** functionality for macOS… It appears that Gramps might need to do an extra step to support the macOS Keychain so that SSL reporting is correct.

```python
Testing URL: https://raw.githubusercontent.com/emyoulation/CuratedGrampsPlugins/master/gramps60/
Listings URL: https://raw.githubusercontent.com/emyoulation/CuratedGrampsPlugins/master/gramps60/listings/

Checking for: addons-da.json
⚠️ Network Error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1028)

Checking fallback: addons-en.json
❌ Network Error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1028)

Possible causes:
  • No internet connection
  • URL is incorrect
  • Server is down
  • Firewall blocking access

```

### Claude reports:

> Root Cause
> 
> On macOS, [Python.org](http://Python.org) installers ship with an **empty system CA store** — Python does not use the macOS Keychain by default. Users must manually run `/Applications/Python 3.x/Install Certificates.command` to populate it. Until that happens, `ssl.create_default_context()` (with no arguments) has no CA bundle to validate against, so every HTTPS connection fails with `CERTIFICATE_VERIFY_FAILED` — even though the URL is perfectly valid and Gramps’ download path (which uses a different urllib call) may work fine.
> 
> > Fix false SSL validation errors on macOS in [Addon Manager](https://gramps-project.org/wiki/index.php/Gramps_Glossary#addon).
> > 
> > On macOS with unconfigured Python certificates, the Test Location validator raised CERTIFICATE\_VERIFY\_FAILED even for valid repos. Added \_make\_ssl\_context() to try certifi before the system default, improved the SSL error message with remediation steps, and treat SSL errors as a soft-pass so users can still save valid repositories.
> > 
> > Co-authored-by: Claude AI (Anthropic, claude-sonnet-4-6, 2026-07-22) Generated-by: prompted to fix macOS SSL false-positive in \_fetch\_json / \_validate\_web\_url; see class docstring for full prompt description.

---

<div class="post-metadata">

**Author:** ![csam](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/csam/32/5361_2.png) [@csam](https://gramps.discourse.group/u/csam)\
**Post date:** [July 22, 2026, 4:00pm UTC](https://gramps.discourse.group/t/false-ssl-validation-failures-for-macos/9740/2 "2026-07-22T16:00:55Z")

</div>

A couple of notes on this problem.

The standard solution to the problem on macOS is to run the “Install Certificates” command or run `python -m pip install --upgrade certifi`, but none of these options are available in the AIO Gramps for macOS.

I have manually copied the python keyring into the Gramps python in order to get the Gramps Web Sync add-on to automatically use latest user/pw pair. Although python keyring uses macOS Keychain, this doesn’t solve the problem seen in the experimental [Addon Manager](https://gramps-project.org/wiki/index.php/Gramps_Glossary#addon).

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [July 22, 2026, 4:06pm UTC](https://gramps.discourse.group/t/false-ssl-validation-failures-for-macos/9740/3 "2026-07-22T16:06:52Z")

</div>

Another revision of the code suggest ways to resolve the SSL error. But that is above the paygrade of a module. Missing core installs should be handled during the Installer phase.  
_Plus the recommended fix is with a `pip3` or CLI operation. As @csam objects above, that `pip3` is not available by default on macOS._

```python
⚠️ SSL Warning: Certificate verification failed
(URL structure appears valid — you may save and use this repository)

Testing URL: https://raw.githubusercontent.com/emyoulation/CuratedGrampsPlugins/master/gramps60
Listings folder: https://github.com/emyoulation/CuratedGrampsPlugins/tree/master/gramps60/listings
   (raw URL: https://raw.githubusercontent.com/emyoulation/CuratedGrampsPlugins/master/gramps60/listings/)

Checking for: addons-da.json
⚠️ SSL Certificate Error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1028)

The repository URL appears reachable but SSL certificate verification failed. This is common on macOS when Python certificates have not been installed.

To fix, run once in a Terminal:
  /Applications/Python\ 3.x/Install\ Certificates.command

Or install the 'certifi' package:
  pip3 install certifi

The addon repository itself is likely valid — you may save it now and addons will download normally.

Checking fallback: addons-en.json
⚠️ SSL Certificate Error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1028)

The repository URL appears reachable but SSL certificate verification failed. This is common on macOS when Python certificates have not been installed.

To fix, run once in a Terminal:
  /Applications/Python\ 3.x/Install\ Certificates.command

Or install the 'certifi' package:
  pip3 install certifi

The addon repository itself is likely valid — you may save it now and addons will download normally.

💾 Will be saved as: https://raw.githubusercontent.com/emyoulation/CuratedGrampsPlugins/master/gramps60
   (Gramps will append '/listings/addons-XX.json')

```

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/gramps/original/1X/2ac1e712b7adf612e31ca08a55419f4cf37c0158.png) [@system](https://gramps.discourse.group/u/system)\
**Post date:** [August 21, 2026, 4:07pm UTC](https://gramps.discourse.group/t/false-ssl-validation-failures-for-macos/9740/4 "2026-08-21T16:07:10Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
