手順とサンプルコードと例に従ってHyperledger Fabricをインストールしようとしています。彼らのページから。しかし、次のコマンドを実行しようとすると:
curl -sSL https://bit.ly/2ysbOFE | bash -s
次のエラーが発生します。
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
少しデバッグした後、問題は名前909be051.0
です/etc/ssl/certs/
。見つけたアドバイスを理解しようとしています。ここしかし、私はこれを言及していませんrootcert.pem
。
その後、カールを取り外して再インストールしてみました。それは無駄です。を実行して証明書の更新を試みupdate-ca-certificates
ますc_rehash
。彼らは役に立たない。
それからこれを見つけました。回答。このコマンドを確認しました(例:ここ)と関連コンテンツを読むここを使用して、以下のようにbit.lyのSSL証明書を取得しようとします。
openssl s_client -showcerts -servername bit.ly -connect bit.ly:443 > cacert.pem
その後、証明書を証明書ディレクトリにコピーしてandを/etc/ssl/certs
実行し、curlコマンドを再試行しましたが、再び機能しませんでした。呼び出し時にディレクトリを指定せず、環境変数が空であったため、プロセスが正しく実行されていない可能性があります。とにかく、この証明書を次のコマンドで直接使用しました。update-ca-certificates
c_rehash
c_rehash
SSL_CERT_DIR
curl
curl -vsSL https://bit.ly/2ysbOFE --cacert ./cacert.pem | bash -s
そして得た
...
* Connection #0 to host bit.ly left intact
* Issue another request to this URL:
'https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh'
* Trying 185.199.109.133:443...
* Connected to raw.githubusercontent.com (185.199.109.133) port 443 (#1)
* ALPN, offering http/1.1
* CAfile: ./cacert-bitly.pem
...
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
} [2 bytes data]
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 1
curl: (60) SSL certificate problem: unable to get local issuer certificate
これは、私が提供した証明書がに接続するのに適しているように見えますが、カールが2番目のドメインの証明書をbit.ly
含まないraw.githubusercontent.com
私が提供した同じファイルを使用して接続しようとしていることを示しています。.pem
そのため、前のコマンドで取得した証明書を再利用しましたraw.githubusercontent.com
。
openssl s_client -showcerts -servername raw.githubusercontent.com -connect raw.githubusercontent.com:443 > cacert-githubusercontent.pem
2番目の証明書を証明書ディレクトリにコピーし、andを/etc/ssl/certs
実行してからcurlコマンドを再試行しましたが、再び機能しませんでした(再び、更新を間違った方法で実行した可能性があります)。次に、2 番目の証明書を最初の証明書に追加することで、両方の証明書を次のように 1 つのファイルのカール コマンドで使用できます。update-ca-certificates
c_rehash
cat cacert-githubusercontent.pem >> cacert.pem
最後に、次を実行します。
curl -vsSL https://bit.ly/2ysbOFE --cacert ./cacert.pem | bash -s
効果がありました。
私の質問は次のとおりです
- bit.ly証明書が失われたのはなぜですか?
- カールがどの証明書を使用するかを自分で決定できないのはなぜですか?
- カールがこのファイルを要求するのはなぜですか
909be051.0
? - 私のやり方は安全ですか?
- これをより簡単にできますか?
よろしくお願いします!
PS:私はすべてのVMWare仮想マシンで実行されているUbuntu 18.04.6でこれを行いました。