SSL接続時の.wgetrcの罠
前提となる環境:
$ wget --version GNU Wget 1.20.3 built on darwin19.2.0. -cares +digest -gpgme +https +ipv6 -iri +large-file -metalink -nls +ntlm +opie -psl +ssl/openssl Wgetrc: /Users/xxxxx/.wgetrc (user) /usr/local/etc/wgetrc (system) Compile: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc" -DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -I../lib -I/usr/local/openssl/include -DNDEBUG Link: gcc -DNDEBUG -L/usr/local/openssl/lib -lssl -lcrypto -ldl -lz ftp-opie.o openssl.o http-ntlm.o ../lib/libgnu.a -liconv Copyright (C) 2015 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>. 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 <hniksic@xemacs.org>. Please send bug reports and questions to <bug-wget@gnu.org>.
wgetをsslサポートでコンパイルした後、httpsなどセキュア接続でファイルを取得しようとすると、以下のエラーが出た。
$ wget https://www.openssl.org/source/ --2019-12-19 09:20:12-- https://www.openssl.org/source/ Resolving www.openssl.org... 23.41.53.191 Connecting to www.openssl.org|23.41.53.191|:443... connected. ERROR: cannot verify www.openssl.org's certificate, issued by 'CN=Let\'s Encrypt Authority X3,O=Let\'s Encrypt,C=US': Unable to locally verify the issuer's authority. To connect to www.openssl.org insecurely, use `--no-check-certificate'.
これは、以下のようにコマンドに証明書のパスを与えれば問題ない。
wget --ca-certificate=$HOME/Documents/cacert.pem https://www.openssl.org/source/
しかし、相当すると思われる記述を次のように.wgetrc
に書くと、エラーになる。
ca_certificate = $HOME/Documents/cacert.pem
散々検索しまくった結果、$HOME
が.wgetrc
ではサポートされないらしい事が分かった。
結局、次のようにフルパスで証明書のパスを与えることで問題は解決した。
ca_certificate = /Users/your_home_directory_name/Documents/cacert.pem
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント