2017-05-22 37 views
0

私は、HTTPS経由でリモートホストに接続する必要のあるCentos7上で動作するアプリケーションを持っています。ただし、証明書を確認することができず、失敗します。私はwgetのを使用してサーバからファイルをダウンロードしようとした場合にも、私は以下のエラーが表示されます。自己署名SSL証明書を信頼できない

[[email protected]:~]# wget https://10.65.127.9/index.html 

--2017-05-22 09:03:01-- https://10.65.127.9/index.html 
Connecting to 10.65.127.9:443... connected. 
ERROR: cannot verify 10.65.127.9's certificate, issued by ‘/CN=us6877vnxe7827’: 
Unable to locally verify the issuer's authority. 
To connect to 10.65.127.9 insecurely, use `--no-check-certificate'. 

だから私は、ホストから証明書を取得:

openssl s_client -connect 10.65.127.9:443 <<<'' | openssl x509 -out /etc/pki/ca-trust/source/anchors/mycert.pem 

そしてプロセスに次のコマンドを実行しますそれ:

update-ca-trust extract 

この私が実行している場合しかし...同じ問題につながる:

openssl s_client -connect 10.65.127.9:443 -showcerts -debug 
私が何を欠落している可能性があり

depth=0 CN = us6877vnxe7827 
verify error:num=20:unable to get local issuer certificate 
verify return:1 
depth=0 CN = us6877vnxe7827 
verify error:num=21:unable to verify the first certificate 
verify return:1 
--- 
Certificate chain 
0 s:/CN=us6877vnxe7827 
i:/CN=us6877vnxe7827 
Server certificate 
subject=/CN=us6877vnxe7827 
issuer=/CN=us6877vnxe7827 
--- 
No client certificate CA names sent 
--- 
Verify return code: 21 (unable to verify the first certificate) 

任意のアイデア:私は

は多少の誤差や各種メッセージを取得しますか?さらに詳しい情報があればお知らせください。

+0

スタックオーバーフローは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[Super User](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 [Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306) – jww

答えて

1

wgetの場合、httpsサーバー証明書に署名した証明機関(CA)証明書を提供する必要があります。あなたがそれらのCA証明書がある場合 - あなたがそれらを持っていない、あなたはHTTPSサーバ証明書の検証(安全でないと危険なことができます)をスキップしたい場合は--ca-certificate=fileまたは--ca-directory=directoryオプション

の下にそれらを追加し、その後--no-check-certificateオプションを使用します。

+0

も参照してください。私は適切に署名された証明書を持っているサーバーのCA証明書の1つに手を差し伸べることができました。そして、wgetをポイントします(--ca-certificate = file)。しかし、自己署名証明書はどうですか?私の研究から、私は 'openssl s_client -connect 10.65.127.9:443'を使って証明書を得ることができるはずだと思いますが、それが引き出すことは機能していないようです。 – azurepancake

+0

より具体的には、証明書に指示した後、「発行者の権限をローカルで確認できません」という返答が返されます。また、例外として追加した後、Firefoxから証明書をエクスポートしました。それは私がopensslを使用して得たものと全く同じ証明で、同じ結果をもたらします。 – azurepancake

+0

自己署名証明書は独自のCA証明書です – Oleg

0

GitLabサーバーに接続しようとしているJenkinsと同じ問題がありました。 サーバーはこのケースでは正式な証明書を持っていますが、Javaは例外ではありません。

あなたは証明書をダウンロードする権利があります。

しかし、あなたが言及しているアプリケーションはおそらくJava仮想マシン内で実行されています(多くのアプリケーションがあります)。 証明書をPEMファイルにダウンロードした時点から、その証明書をVMの信頼できる証明書に追加する必要があります。

This articleは、その方法を説明しています。それが役に立てば幸い。

関連する問題