

■環境  
WindowsServer2016  
curlバージョン:7.53.1  
実行コマンド：`curl -v -x プロキシサーバ サイト名`

上記コマンドを実行した結果、以下のようなエラーとなりました。

[code]

    * schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - 失効サーバーがオフラインのため、失効の関数は失効を確認できませんでした。
    
[/code]

以下のサイトを参考に「cacert.pem」をダウンロードし「curl.exe」と同じフォルダへ「cacert.pem」をリネームして「curl-ca-
bundle.crt」を配置しましたが、エラーが解消されませんでした。対処方法を教えていただけますでしょうか。

[Windows版のcurl.exe で SSL通信のエラーの件](https://tksm.org/wp/archives/3746)


CC BY-SA 4.0
2022-09-08T02:16:06.073
90990
2022-09-08T23:08:41.997
2022-09-08T23:08:41.997
4236
52262
question
windows curl windows-server
curlの証明書チェックができない


まずcurlは複数のライブラリを扱うことができます。SSL周りもOpenSSLやSchannelを扱うことができます。  
参考にされたサイトの記述はOpenSSLを使用した場合の対策なのに対し、エラーはSchannelによるものなので、対策として筋違いなものとなっています。

エラーメッセージは

> 失効サーバーがオフラインのため、失効の関数は失効を確認できませんでした。

で、失効確認つまり revoke に失敗しているため、[オプション `--ssl-no-
revoke`](https://curl.se/docs/manpage.html#--ssl-no-revoke)
を付けることで失効確認を無効化でき、エラーを回避することができます。  
（当然ながら失効確認できるべきですが…）

* * *

参考までにWindows付属のcurlの場合（コマンドプロンプトで実行）

[code]

    C> curl -V
    curl 7.83.1 (Windows) libcurl/7.83.1 Schannel
    Release-Date: 2022-05-13
    Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
    Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets
    
[/code]

Schannelしか組み込まれていません。

git for windows付属のcurlの場合（Git Bash上で実行）

[code]

    $ curl -V
    curl 7.82.0 (x86_64-w64-mingw32) libcurl/7.82.0 OpenSSL/1.1.1n (Schannel) zlib/1.2.12 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.2 libssh2/1.10.0 nghttp2/1.47.0
    Release-Date: 2022-03-05
    Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP zstd
    $ CURL_SSL_BACKEND=schannel curl -V
    curl 7.82.0 (x86_64-w64-mingw32) libcurl/7.82.0 (OpenSSL/1.1.1n) Schannel zlib/1.2.12 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.2 libssh2/1.10.0 nghttp2/1.47.0
    Release-Date: 2022-03-05
    Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: alt-svc AsynchDNS brotli HSTS HTTP2 IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP zstd
    
[/code]

こちらはOpenSSLとSchannelの両方が組み込まれていて、使用するSSLライブラリは[環境変数`CURL_SSL_BACKEND`](https://curl.se/libcurl/c/libcurl-
env.html#CURLSSLBACKEND)で制御できます。重複していて無効化されているライブラリが `()` 表記されるそうです。


CC BY-SA 4.0
2022-09-08T23:08:29.267
91007
2022-09-08T23:08:29.267
4236
90990
answer