8

Debianサーバーでrvmを更新しようとしています:

rvm get stable

しかし、私は次のエラーが発生しました:

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here : http://curl.haxx.se/docs/sslcerts.html

このサーバーを約5か月前にインストールし、すべてが正常に機能していましたが、 https://rvm.ioの証明書に何か変更があったようです。

だから私は新しいバンドル証明書(私のユーザーディレクトリのcacert.pem)をダウンロードすることができました:

wget http://curl.haxx.se/ca/cacert.pem

そして、公式ドキュメントにあるように別のコマンドを試してください。ただし、証明書ファイルで使用するオプションがあります。

\curl --cacert ./cacert.pem -L https://get.rvm.io | bash -s stable # update to stable

物事は少し前進しました。残念ながら、後でrvmがインストールプロセス中に再びcurlを実行し、同じエラーが発生しました。

それで、cURLで使用されているものを置き換えるためにcacert.pemファイルをどこに置くべきか疑問に思いましたか?

他の技術も試しました:cacert =〜/ cacert.pemを含む.curlrcファイルを作成しましたが、エラーが発生しました:CAfile:cacert.pem CApath:/ etc / ssl / certs

そこで、cacert.pemを/usr/share/ca-certificates/cacert.orgにコピーして、/ etc / ssl/certsに/usr/share/ca-certificates/cacert.org/を指すsymリンクを作成しました。 cacert.pem

しかし、私が

rvm get stable

エラーが発生しました:

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here : http://curl.haxx.se/docs/sslcerts.html

私もこれを以下で試しましたが、異なる結果はありませんでした:

sudo update-ca-certificates -f

だから私は私のcacert.pemファイルをどこに置くべきか疑問に思っていますか?

4

1 に答える 1

4

わかりました、私はそれをうまく機能させることができましたが、私は自分の解決策にあまり満足していません。

私が犯した最初の間違いは、.curlrcファイルの命令が正しくなかったことです。このファイルは、「curl」コマンドにオプションを指定するのと同じ方法で使用する必要があります。だから私は「等号」を削除しました:

cacert /home/user_me/cacert.pem

これで、コマンドの最初の部分を機能させることができました:

\curl -L https://get.rvm.io | bash -s stable

rvmがルートモードで再びcurlを使用していたため、bash部分はまだ失敗していました。

そこで、.curlrcファイルも/rootフォルダーにコピーしました。

そしてそれはうまくいきました!標準のrvmコマンドを呼び出すこともできます:

rvm get stable

しかし、これは少し注意が必要です。curlは、これらすべての.curlrcファイルなしでcacert.pemファイルを使用することをお勧めします。

さらにグーグルで、私はここここでいくつかの有用な情報を見つけました。最初の参照には少し間違いがあります。「sudoupdate-ca-certificates--fresh」コマンドのマニュアルページを読んだとき、その人がファイルを間違った場所に置いていることに気付きました。

証明書を/usr/ local / share/ca-certificatesではなく/usr/ share / ca-certificatesフォルダーに配置してから、証明書の行を構成ファイル/etc/ca-certificates.confに追加する必要があります(例:「my_ca.crt」)。次に、「sudoupdate-ca-certificates--fresh」コマンドを実行できます。

注:代わりに証明書を/ usr / local / share / ca-certificatesにコピーする場合は、 / etc / ca-certificates.conf構成ファイルを変更したり、「sudoupdate-ca-」を実行したりする必要はありません。証明書--fresh"コマンド。

ただし、私の場合、最初のソリューション(/ usr / share / ca-certificates)で、「sudoupdate-ca-certificates--fresh」コマンドを実行するとエラーが発生しました。2番目の解決策として、証明書を/ usr / local / share/ca-certificatesに配置しようとしました。しかし、それはうまくいきませんでした。

それで私はあきらめて、2つの.curlrcファイルを保持しました。

ですから、私が間違っていることを誰かが指摘できれば、私はとても感謝しています。

于 2012-11-05T10:10:28.510 に答える