Linux wget игнорировать сертификат

Как не использовать «—no-check-certificate» в wget?

В wget можно часто используемые опции выносить в какую-то переменную окружения (не помню точно название). Тогда не нужно быдет писать эту опцию в командной строке.

3 ответа 3

Вам надо установить сертификат издателя в качестве доверенного сертификата издателя. OpenSSL (библиотека которого используется в wget ) доверяет сертификатам, установленным в /etc/ssl/certs . Сам сертификат в формате PEM надо загрузить в файл с расширением .crt и положить в /etc/ssl/certs . Этого должно быть достаточно, но если нет, то путь к директории с сертификатами можно указать для wget опцией

Я не в UNIXе а в WINDOWSе. 1. Как загрузить файл с расширением .crt ? 1.1. В Internet Explorer заходи на сайт — wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7 -Кликаем замочек — Просмотр сертификатов — Вкладка «Состав» — «Копировать в файл» — «Далее» — А дальше что выбрать? 2. Как будет выглядеть строка M:\Distrib\Wget\wget.exe . ? Так: M:\Distrib\Wget\wget.exe —secure-protocol=TLSv1 —ca-directory=M:\Certificate https://wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7 —output-file=log.txt —output-document=M:\XML\XMLWMList7.xml ?

Перебрал множество вариантов, добавлял —certificate-type=PEM , сохранял сертификаты по разному, не получается.

У wget есть ещё опция —ca-certificate , с помощью которой можно указать сертификат CA. указывать надо не сам сертификат сайта (тем более что IE сохраняет его в бинарном формате DER, хотя расширение даёт .crt ). Попробуйте скачать ssl-tools.net/certificates/… и указать его без переименовывания с опцией —ca-certificate 440ff68a35e03995ac55e457a67eb1680f9a7cdd.pem

Проверил ещё раз много вариантов, один из них: M:\Distrib\Wget\wget.exe —secure-protocol=TLSv1 —ca-certificate=M:\Certificate\440ff68a35e03995ac55e457a67eb1680f9a7cdd.pem https://wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7 —output-file=log.txt —output-document=M:\XML\XMLWMList7.xml — не получилось. А почему нужно качать сертификат с сайта: ssl-tools.net а не из сайта: wm.exchanger.ru ?

Можно и с wm.exchanger.ru — этот сайт отправляет всю цепочку сертификатов. По описанию wget позволяет указать доверенные сертификаты издателей, но не самого сайта. Поэтому вам нужен сертификат этого CA Network Solutions OV. , да ещё в PEM формате (IE вам отдаст его в DER). Я сравнил сертификаты из цепочки с сайта и с сайта ssl-tools.net — они одинаковые, и проблема не в них. У меня есть подозрение, что установленный у вас wget вообще имеет проблемы с проверкой сертификатов (слишком старая версия библиотеки openssl? — не знаю. )

Вариант с отключением проверки сертификатов: создаете файл с именем «.wgetrc», прописываете в нем строку check_certificate = off и кладете этот файл в каталог с wget.exe. Проверено на wget 1.10.2

Добавить комментарий не получилось, наверно у меня был временный аккаунт.

Читайте также:  Tp link wifi адаптер драйвер linux

WINDOWSу не нравится создание, переименование. файла без имени. Пробовал так:

set https_proxy=http://192.168.1.1:80 set use_proxy=on set check_certificate=off M:\Distrib\Wget\wget.exe --secure-protocol=TLSv1 https://wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7 --output-file=log.txt --output-document=M:\XML\XMLWMList7.xml 

Думал set check_certificate=off заменит —no-check-certificate — не заменяет.

Egor Skriptunoff — Не получилось добавить комментарием, мой вопрос уже похоже не мой.

а смысл? просто запишите —no-check-certificate в файл параметров

  • —no-check-certificate . Это — почти всегда плохая идея, не проверять сертификаты при передаче конфиденциальных или важных данных; ОПЦИИ HTTPS(SSL/TLS)
  • Да, и если возможно избавиться от WARNING — почему бы не избавиться.

Обновление 2

Прошу прощенья, Outtruder комментарий добавить не удалось, говорит, репутации маловато.

У меня есть подозрение, что установленный у вас wget вообще имеет проблемы с проверкой сертификатов (слишком старая версия библиотеки openssl? — не знаю. )

  • У Вас отрабатывает скрипт?
  • С какими ключами?
  • Где Вы Wget качали? wget.exe -V >log.txt
GNU Wget 1.16.3 built on mingw32. +digest +https +ipv6 +iri +large-file -nls +ntlm +opie -psl +ssl/openssl Wgetrc: M:\Distrib\Wget/.wgetrc (user) /usr/local/etc/wgetrc (system) Compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc" -DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -I../lib -I/win32dev/misc/wget/out2/include -I/win32dev/misc/wget/out2/include -DNDEBUG -mtune=generic -mtune=intel Link: i686-w64-mingw32-gcc -DNDEBUG -mtune=generic -mtune=intel -L/win32dev/misc/wget/out2/lib -L/win32dev/misc/wget/out2/lib /win32dev/misc/wget/out2/lib/libiconv.a /win32dev/misc/wget/out2/lib/libssl.a /win32dev/misc/wget/out2/lib/libcrypto.a -lz -lws2_32 -lole32 -lgdi32 -lcrypt32 -lidn ftp-opie.o mswindows.o openssl.o http-ntlm.o ../lib/libgnu.a Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Originally written by Hrvoje Niksic . Please send bug reports and questions to . 

Источник

How to ignore SSL certificate error in wget

Wget, by default, performs a validity check of SSL certificates when connecting to https websites to ensure the certificate is valid. However, there are times that you’ll want Wget to ignore SSL certificate check errors and warnings. This could happen when accessing websites with expired or self-signed SSL certificates, but you still trust the websites.

$ wget https://www.simplified.guide --2021-03-29 11:09:07-- https://www.simplified.guide/ Resolving www.simplified.guide (www.simplified.guide). 127.0.0.1 Connecting to www.simplified.guide (www.simplified.guide)|127.0.0.1|:443. connected. ERROR: cannot verify www.simplified.guide's certificate, issued by ‘CN=mkcert name@hostname (Your Name),OU=name@hostname (Your Name),O=mkcert development CA’: Unable to locally verify the issuer's authority. ERROR: certificate common name ‘*.simplified.guide’ doesn't match requested host name ‘www.simplified.guide’. To connect to www.simplified.guide insecurely, use `--no-check-certificate'.

You can turn off check-certificate option in Wget to skip certificate check, thus ignoring SSL errors. This is equivalent to using insecure option for cURL.

Steps to skip certificate check in wget:

$ wget https://www.simplified.guide --2021-03-29 11:31:11-- https://www.simplified.guide/ Resolving www.simplified.guide (www.simplified.guide). 127.0.0.1 Connecting to www.simplified.guide (www.simplified.guide)|127.0.0.1|:443. connected. ERROR: cannot verify www.simplified.guide's certificate, issued by ‘CN=mkcert name@hostname (Your Name),OU=name@hostname (Your Name),O=mkcert development CA’: Unable to locally verify the issuer's authority. To connect to www.simplified.guide insecurely, use `--no-check-certificate'.
$ wget --no-check-certificate https://www.simplified.guide --2021-03-29 11:32:21-- https://www.simplified.guide/ Resolving www.simplified.guide (www.simplified.guide). 127.0.0.1 Connecting to www.simplified.guide (www.simplified.guide)|127.0.0.1|:443. connected. WARNING: cannot verify www.simplified.guide's certificate, issued by ‘CN=mkcert name@hostname (Your Name),OU=name@hostname (Your Name),O=mkcert development CA’: Unable to locally verify the issuer's authority. HTTP request sent, awaiting response. 200 OK Length: unspecified [text/html] Saving to: ‘index.html’ index.html [ ] 31.01K --.-KB/s in 0s 2021-03-29 11:32:21 (100 MB/s) - ‘index.html’ saved [31755]
--no-check-certificate Don't check the server certificate against the available certificate authorities. Also don't require the URL host name to match the common name presented by the certificate. As of Wget 1.10, the default is to verify the server's certificate against the recognized certificate authorities, breaking the SSL handshake and aborting the download if the verification fails. Although this provides more secure downloads, it does break interoperability with some sites that worked with previous Wget versions, particularly those using self-signed, expired, or otherwise invalid certificates. This option forces an "insecure" mode of operation that turns the certificate verification errors into warnings and allows you to proceed. If you encounter "certificate verification" errors or ones saying that "common name doesn't match requested host name", you can use this option to bypass the verification and proceed with the download. Only use this option if you are otherwise convinced of the site's authenticity, or if you really don't care about the validity of its certificate. It is almost always a bad idea not to check the certificates when transmitting confidential or important data.
$ echo "check-certificate = off" >> ~/.wgetrc
$ wget https://www.simplified.guide --2021-03-29 11:42:29-- https://www.simplified.guide/ Resolving www.simplified.guide (www.simplified.guide). 127.0.0.1 Connecting to www.simplified.guide (www.simplified.guide)|127.0.0.1|:443. connected. WARNING: cannot verify www.simplified.guide's certificate, issued by ‘CN=mkcert name@hostname (Your Name),OU=name@hostname (Your Name),O=mkcert development CA’: Unable to locally verify the issuer's authority. HTTP request sent, awaiting response. 200 OK Length: unspecified [text/html] Saving to: ‘index.html.1’ index.html [ ] 31.01K --.-KB/s in 0s 2021-03-29 11:42:29 (115 MB/s) - ‘index.html’ saved [31755]

Источник

Читайте также:  Command line partition linux

Ignore SSL Certificate Error with Wget

Getting an expired certificate error while downloading files with wget? Here’s how to ignore it.

So you installed wget and when you tried to download files in the Linux terminal, it got you an SSL certificate error like the following?

[email protected]:~$ wget https://expired.badssl.com --2022-11-04 14:35:55-- https://expired.badssl.com/ Resolving expired.badssl.com (expired.badssl.com). 104.154.89.105 Connecting to expired.badssl.com (expired.badssl.com)|104.154.89.105|:443. connected. ERROR: cannot verify expired.badssl.com's certificate, issued by ‘CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB’: Issued certificate has expired. To connect to expired.badssl.com insecurely, use `--no-check-certificate'.

The reason why you get this error is simple. By default, wget checks for a valid SSL certificate so that you can have a reliable connection and if not, it throws an error saying the Issued certificate has expired.

So let’s have a look at how to ignore SSL certificate errors while using wget.

Ignore SSL certificate error with wget

While I won’t advise you to connect over a website that has a broken SSL certificate, you may find this error on a trusted site and wish to continue, so here you go.

To ignore this error, you have to use —no-check-certificate option and it won’t check for an SSL certificate:

wget --no-check-certificate https://expired.badssl.com
[email protected]:~$ wget --no-check-certificate https://expired.badssl.com --2022-11-04 15:18:07-- https://expired.badssl.com/ Resolving expired.badssl.com (expired.badssl.com). 104.154.89.105 Connecting to expired.badssl.com (expired.badssl.com)|104.154.89.105|:443. connected. WARNING: cannot verify expired.badssl.com's certificate, issued by ‘CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB’: Issued certificate has expired. HTTP request sent, awaiting response. 200 OK Length: 494 [text/html] Saving to: ‘index.html.1’ index.html.1 100%[===================>] 494 --.-KB/s in 0s 2022-11-04 15:18:08 (209 MB/s) - ‘index.html.1’ saved [494/494]

Skip the certification check

I do not recommend this unless you have an isolated environment or want to test things regardless of security concerns.

Читайте также:  Linux youtube music player

To skip the certification check every time you visit the broken SSL site, you just have to append check-certificate = off in wget config file:

And now, you can download files using wget over broken SSL sites without adding —no-check-certificate option:

[email protected]:~$ wget https://expired.badssl.com --2022-11-04 15:41:50-- https://expired.badssl.com/ Resolving expired.badssl.com (expired.badssl.com). 104.154.89.105 Connecting to expired.badssl.com (expired.badssl.com)|104.154.89.105|:443. connected. WARNING: cannot verify expired.badssl.com's certificate, issued by ‘CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB’: Issued certificate has expired. HTTP request sent, awaiting response. 200 OK Length: 494 [text/html] Saving to: ‘index.html.2’ index.html.2 100%[===================>] 494 --.-KB/s in 0s 2022-11-04 15:41:51 (191 MB/s) - ‘index.html.2’ saved [494/494]

Wrapping Up

Curl or wget, you can face this issue in both commands.

Through this guide, I explained how you could ignore SSL certificate errors with wget. If you have any queries, let me know in the comments.

Источник

Оцените статью
Adblock
detector