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