Пропустить проверку сертификата wget в операторе - PullRequest
0 голосов
/ 11 июля 2019

Я только что обновился до opam 2, на очень старом MacBook, который я не могу обновить (под управлением OS X 10.6.8), и в котором отсутствуют некоторые важные пакеты, связанные с проверкой сертификата (и из-за отсутствия инструментов, я даже не могу обновитьДоморощенный, потому что он требует сертификации ... вроде круговой проблемы).

Я хотел бы обновить операционную систему без проверки сертификатов, так как в противном случае я получаю следующую ошибку:

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><>  ? 
[ERROR] Could not update repository "default": 
OpamDownload.Download_fail(_, "Download command failed: 
  \"/usr/local/bin/wget --content-disposition -t 3 -O 
    /private/tmp/opam-17621-5a61c5/index.tar.gz.part
    https://opam.ocaml.org/1.2.2/index.tar.gz -U opam/2.0.0\"
  exited with code 5 
  \"ERROR: cannot verify opam.ocaml.org's certificate, issued by
  'CN=Let\\'s Encrypt Authority X3,O=Let\\'s Encrypt,C=US':\"")

Iтолько что смог обновить с 1.2.2 до opam 2.0.0, но теперь я не могу сделать opam update.А без этого я мало что могу сделать.

Есть ли способ передать опцию --no-check-certificate в команду wget, используемую opam, без необходимости перекомпилировать ее самостоятельно?

1 Ответ

1 голос
/ 11 июля 2019

Вместо этого исправьте wget.Похоже, что в нем отсутствует недавний комплект CA.

Сначала проверьте, где он ищет комплект -

$ strace wget -O /dev/null https://github.com 2>&1 | grep cert

read(3, "eting an end user certificate as"..., 4096) = 2806
read(5, "eting an end user certificate as"..., 4096) = 2806
openat(AT_FDCWD, "/usr/lib/ssl/cert.pem", O_RDONLY) = -1 ENOENT (No such file or directory)

Затем скопируйте .pem комплекта Mozilla в соответствии с ожидаемым.pem path.

Если вы работаете в системе, в которой отсутствует strace или просто нет упоминания о расположении пакета CA в выходных данных, попробуйте создать .wgetrc и добавить

ca_certificate = /path/to/your/ca-bundle.pem

Сохранить как $HOME/.wgetrc.

wget затем сможет проверить сертификат Let's Encrypt.

Подробнее о .wgetrc в http://gnu.org/software/wget/manual/html_node/Wgetrc-Commands.html

...