07th-mod / python-patcher

Mod Installer for the Higurashi and Umineko Games
142 stars 12 forks source link

Missing cert on Fedora Linux #80

Open drojf opened 4 years ago

drojf commented 4 years ago

We had a user on Fedora Linux whose install failed as python couldn't find the cert for downloading:

i've looked more carefully into the terminal log and it seems that ssl certificates are at fault? " Failed to load trusted CA certificates from /etc/ssl/certs/ca-certificates.crt. Cause: error:02001002:system library:fopen:No such file or directory"

The user resolved the issue by manually copying the file to the right location

just now i went into into etc/ssl/certs/ and there was only a file called ca-bundle.crt and i copied it and named the copy ca-certificates.crt and tried insaller again

I'm just noting this down for now, no action taken.

drojf commented 4 years ago

Another user on openSUSE Leap 15.1 reported the same issue:

Failed to load trusted CA certificates from /etc/ssl/certs/ca-certificates.crt. Cause: error:02001002:system library:fopen:No such file or directory

Edit: The FAQ has an article about it now: http://07th-mod.com/wiki/Installer/faq/#linux-download-stage-fails-failed-to-load-trusted-ca-certificates

bugmen0t commented 4 years ago

There are two somewhat viable options:

  1. Bundle cacert.pem (e.g. https://curl.haxx.se/docs/caextract.html ). It's somewhat messy and requires maintenance, but viable, given that trust store doesn't update that often, and certs tend to be cross-signed anyway.

  2. Try to find path for CA trust file first and then pass it on as argument to aria2c. There aren't that many locations for them.

drojf commented 4 years ago

Thanks for informing me about this bugmen0t. I opted to try the second option (applied in https://github.com/07th-mod/python-patcher/commit/2450fcc89d9eae0511aa02d359bbec9b1252c2df), which is applied in the v1.1.23 installer.

I won't close the issue yet as I'm both not sure if the fix will work for everyone, and I haven't tested the fix myself on a linux system