web-dev-qa-db-ja.com

コマンドラインの証明書をインストールする方法

そのため、学校ではhttpsサイトにアクセスするために証明書をインストールする必要があります。 firefoxでは、証明書をインポートできます。ただし、コマンドラインではできません。たとえば、git Pushを実行すると、次のようになります。

fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

証明書をインポートしてこれを削除するにはどうすればよいですか?インポートは私のために認証できなければなりません。また、.cerファイルであるため、.crtの答えは機能しません。また、すでに持っているように、gitをセットアップする手順は必要ありません。それが可能かどうか知りたいです。または、gitコマンドを使用して認証を完全に無効にし、 答え のような証明書を無視させることはできますか?また、Webページをロードしたくないので、Firefoxでロードするように設定しました。 git Pushコマンドを使用して、次のような標準出力を提供します。

[master 630d087] message
 1 file changed, 93 insertions(+), 80 deletions(-)
 rewrite somefile (84%)
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 978 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To https://github.com/User/Repo.git
   851ae39..630d087  master -> master

注:git config --global http.sslverify falseを見つけました。しかし、git hackだけでなく、すべての答えを知りたい

65

TL; DR

ブラウザだけでなくすべてが機能するためには、そのCA証明書をシステムの信頼できるCAリポジトリに追加する必要があります。

Ubuntuの場合:

  • / usr/local/share/ca-certificates /に移動します
  • 新しいフォルダ、つまり「Sudo mkdir school」を作成します
  • .crtファイルを学校のフォルダーにコピーします
  • 許可がOKであることを確認してください(フォルダーには755、ファイルには644)
  • 「Sudo update-ca-certificates」を実行します

理由

何が起こっているのかを説明しましょう。他のポスターは、Github over HTTPSを使用するのに証明書が必要ない理由を説明しています。

そこで起こっているのは、おそらくあなたの学校がそれらを監視するために、すべてのSSL通信を傍受しているということです。

それを行うために、彼らが行うことは本質的に「中間者」攻撃であり、そのため、ブラウザーはgithubの証明書を検証できないと不平を言っています。学校のプロキシがgithubの証明書を取得し、代わりに独自の証明書を提供しています。

ブラウザが、githubの証明書に署名したCAに対して学校から提供された証明書を検証しようとすると、当然失敗します。

そのため、学校でSSL接続が機能するには、その「MITM」攻撃を意識的に受け入れる必要があります。そして、あなたは学校のCA証明書を信頼できる証明書として追加することでそれを行います。

その学校のCAを信頼すると、偽のgithub証明書の検証が機能します。偽のgithub証明書は学校のCAによって検証されるためです。

学校の管理者はすべての暗号化された接続を傍受できるため、SSL接続はもはや安全ではないことに注意してください。

100
Telegrapher

ca-certificatesパッケージのREADME.Debianに手順があります:

暗黙的に信頼されるようにローカル認証局をインストールする場合は、.crtで終わる単一のファイルとして証明書ファイルを/usr/local/share/ca-certificates/に入れ、update-ca-certificatesを再実行してください。

ここで、他の回答とは異なるディレクトリに言及していることに注意してください。

/usr/local/share/ca-certificates/

/usr/local/share/ca-certificates/にコピーした後、テレグラファーの回答に記載されているように、証明書の権限を更新してSudo update-ca-certificatesを実行できます。出力に証明書が追加されたことがわかります。

39
Robert Siemer

拡張子.crt、.pem、および.cerは互換性があり、ファイル名の拡張子を変更するだけで、同じ形式になります。これを試して:

$ Sudo cp mycert.cer /usr/share/ca-certificates/mycert.pem
$ Sudo dpkg-reconfigure ca-certificates
$ Sudo update-ca-certificates
$ git config --global http.sslCAInfo /usr/share/ca-certificates/mycert.pem
15
Mike

以前の回答の次の編集を使用します。

Sudo -i
echo | openssl s_client -showcerts -servername site.example.com -connect example.com:443 2>/dev/null | awk '/-----BEGIN CERTIFICATE-----/, /-----END CERTIFICATE-----/' >> /usr/local/share/ca-certificates/ca-certificates.crt 
update-ca-certificates

ワンライナーになるように変更できます。

多くの場合、site.example.comexample.comは両方とも同じホスト名です。

5
Orient

すべてのソリューションを読んで、このように解決しました。

Sudo openssl x509 -inform DER -in certificate.cer -out certificate.crt

Sudo mv certificate.crt /usr/share/ca-certificate/

cd /usr/share/ca-certificate

Sudo chmod 644 certificate.crt

Sudo dpkg-reconfigure ca-certificates

Sudo update-ca-certificates
2
Kadir Y.

Firefoxとgoogle chromeに証明書をインストールしても同様の問題が発生していましたが、ターミナルSudo apt-get updateでの更新が機能せず、403 Forbidden IPエラーが発生しました。私もsample.cerファイルを持っていました。したがって、基本的には最初に.crtに変換する必要があります。

Sudo openssl x509 -inform DER -in sample.cer -out sample.crt

それでもSudo dpkg-reconfigure ca-certificatesを実行している間、必要な証明書が見つかりませんでした。私の問題は、間違った場所で証明書をコピーしていたことです。

$/usr/share/ca-certificatesにコピーする代わりに、$/usr/local/share/ca-certificatesにコピーしていましたが、適切な場所に配置することで問題を解決しました。ただし、パッケージを更新したり、新しいパッケージをインストールしたりすることはできません。

クイックフィックス(私にとって):

Httpの代わりにftpを使用

Sudo sed -i s/http/ftp/ /etc/apt/sources.list && apt-get update

上記のコマンドは機能しました。変更を行う前に、sources.listファイルのコピーを作成してください。

何か明確でない、または適切でない場合は、修正してください。

1
Gopal Sharma

httpsを使用してWebサイトにアクセスするには、CLIまたはGUIブラウザーを使用しているかどうかにかかわらず、学校の証明書は必要ありません。

Http(s)経由でgitを使用するには、プロファイル設定の GitHub で公開キーを登録する必要があります。

詳細情報 こちら 。 GitHubプロファイルを変更します here


これを試して:

Sudo apt-get install w3m
w3m https://github.com/

…追加の証明書なしで機能します。

0
A.B.