LoginSignup
1
0

More than 3 years have passed since last update.

CygwinでHTTPSの自己署名証明書を信頼する

Posted at

メモ。

ローカルに立てたサーバに対して git push しようとして SSL certificate problem になること有るよね。

$ git push --all testing
fatal: unable to access 'https://...': SSL certificate problem: self signed certificate

何故か世間では git config http.sslVerify false せよという表記が多いけど、別に自己署名証明書を信頼するのは超簡単なのでそちらを勧める。

自己署名証明書を信頼する

これは trust コマンド一発で完了する。

trust anchor certificate.cer

certificate.cer は公開鍵ファイルで、nginxであれば ssl_certificate オプションで指定しているファイルが相当する。中身は

-----BEGIN CERTIFICATE-----
MIIEqjCCApICCQDsBM+2LKS6/TANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxz
dHJpcGUubG9jYWwwHhcNMTgwOTIyMTAzOTQyWhcNMjgwOTE5MTAzOTQyWjAXMRUw
EwYDVQQDDAxzdHJpcGUubG9jYWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQDpMYXQ83m4DC4Fvw11Uqnawhm160CFW91yFYwD1TX84dQQ0CUUxlUDF9vb

のような内容のテキストファイルとなる。つまり、sshの authorized_keys に足すくらい簡単にできる。

一度追加した自己署名証明書を削除するには:

trust anchor --remove certificate.cer

のように、オプション --remove を使う。

trust って何

trust は Cygwinの p11-kit-trust パッケージに含まれるツールで、通常は ca-certificate (SSL証明書を含む) パッケージ経由でインストールされている。 https://cygwin.com/packages/summary/ca-certificates.html

$ cygcheck -f /usr/bin/trust
p11-kit-trust-0.23.15-1

この p11-kit はGitHubにプロジェクト( https://github.com/p11-glue/p11-kit )があり、ドキュメントもそこからアクセスできる。 https://p11-glue.github.io/p11-glue/p11-kit/manual/trust.html

伝統的には、RedHat系のディストリビューションでは update-ca-trust でこの手の処理を行っていたが、現在のCygwinではこの操作が p11-kit で行われるようになっている。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0