[解決済み] 不正な証明書でhttpsリクエストを行うには?
2022-04-21 09:09:11
質問
を取得したいとします。
https://golang.org
をプログラムすることができます。現在、golang.org (ssl)には悪い証明書があり、その証明書が発行されると
*.appspot.com
そこで、これを実行すると
package main
import (
"log"
"net/http"
)
func main() {
_, err := http.Get("https://golang.org/")
if err != nil {
log.Fatal(err)
}
}
私は(予想通り)得る
Get https://golang.org/: certificate is valid for *.appspot.com, *.*.appspot.com, appspot.com, not golang.org
さて、私はこの証明書を自分で信頼したいと思います(フィンガープリントなどを検証できる自己発行証明書を想像してください):どのようにリクエストを行い、証明書を検証/信頼することができるでしょうか?
おそらく、openssl を使って証明書をダウンロードし、それを自分のファイルにロードして、そのファイルに
tls.Config
構造体!?
解決方法は?
セキュリティに関する注意事項:セキュリティチェックを無効にすることは危険ですので、避けてください。
デフォルトのクライアントのすべてのリクエストに対して、セキュリティチェックをグローバルに無効にすることができます。
package main
import (
"fmt"
"net/http"
"crypto/tls"
)
func main() {
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
_, err := http.Get("https://golang.org/")
if err != nil {
fmt.Println(err)
}
}
クライアントのセキュリティチェックを無効にすることができます。
package main
import (
"fmt"
"net/http"
"crypto/tls"
)
func main() {
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
client := &http.Client{Transport: tr}
_, err := client.Get("https://golang.org/")
if err != nil {
fmt.Println(err)
}
}
関連
-
[解決済み] Firefoxです。"このページの一部は、画像など安全ではありません。" 何をもって安全でないと判断するのでしょうか?
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み] HTTPSのURLは暗号化されていますか?
-
[解決済み] 自己署名入りの証明書をgitに受け入れさせるにはどうしたらいいですか?
-
[解決済み] HTTPSヘッダーは暗号化されていますか?
-
[解決済み] HTTPSのクエリ文字列は安全ですか?
-
[解決済み】全てのブラウザで、Webページのキャッシュを制御するには?
-
[解決済み】自己署名付きlocalhost証明書をChromeが受け入れるようにする方法
-
[解決済み】Java HTTPSクライアント証明書認証
-
[解決済み] 紛失したIIS Express SSL証明書を復元するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] OpenSSL: Experian URL の最初の証明書を検証できません。
-
[解決済み] をカールします。(35) error:1408F10B:SSLルーチン:ssl3_get_record:バージョン番号が間違っています。
-
[解決済み] チェーン処理中にローカル発行者証明書を取得できない
-
[解決済み] wget ssl alert ハンドシェイク失敗
-
[解決済み] SNIとCCSを使用してhttpsのデフォルトのWebサイトを設定する方法
-
[解決済み] クライアント証明書を使用しようとしたときのsslv3 alert handshakeの失敗の解決法
-
[解決済み] .keyと.crtファイルから.pemファイルを取得する方法は?
-
[解決済み] NGINXでWebソケットをリバースプロキシし、SSL(wss://)を有効にするには?
-
[解決済み] IISExpressでのSSL接続・接続解除について
-
[解決済み] 紛失したIIS Express SSL証明書を復元するにはどうすればよいですか?