curlクライアント証明書はhttpsサイトにアクセスします。


現在、大企業のOA管理システム(通称イントラネット)は、セキュリティ要件が高く、httpsの双方向認証モードを採用している。
まず、httpsとは何ですか?簡単に言うとSSLプロトコルで実現されるhttpプロトコル(get、postなどの操作)です。もっと多くの紹介はここを参照してください。 
双方向認証モードとは何ですか?公衆ユーザ向けのhttpsのウェブサイトのほとんどは一方向認証モードであり、クライアントを認証する必要はなく、クライアントの個人証明書などを提供する必要はない。https://www.google.com。双方向認証モードは、クライアントの合法性を検証するために、クライアントがサーバにアクセスする際に、自分のclient certifcateを提示することを要求する。
Crlを使って双方向認証のhttpsサイトにアクセスする方法を紹介します。
一、準備工作
まず、クライアント認証を行うためには、クライアントの個人証明書(社内ネットワークについては、通常はITの管理者によって発行される)を持っていなければなりません。スムーズに双方向認証のhttpsサイトにアクセスできる限り、個人証明書を持ってブラウザに隠します。私たちがやるべき仕事はブラウザから導き出すだけです。IEブラウザから導き出されるフォーマットは、通常は.pfxフォーマットであり、firefoxから導き出されるフォーマットは.p 12フォーマットであり、実はpfx=p 12であり、それらは同じものであり、curlにとってこのようなフォーマットはPKCS cal 12ファイルと呼ばれる。
2、p 12フォーマットをpem形式に変換する(p 12ファイル名を仮定すると:xxx.p 12):
実行中に証明書のエクスポート時に設定されたパスワードを入力する必要があります。実行が成功したら、これらのファイルがあります。クライアント公開鍵、key.pem、クライアント秘密鍵、またはデュエットall.pem。
openssl pkcs12 -in xxx.p12 -out client.pem -nokeys       #            
openssl pkcs12 -in xxx.p12 -out key.pem -nocerts -nodes    #                              
openssl pkcs12 -in xxx.p12 -out all.pem -nodes                #        ,    all.pem  
3、あなたがインストールしたcurlバージョンが正しいことを確認します。(私は二日間苦しめました。全部fedora 13の下のcurl-7.2.1に問題があります。curl-7.2.tar.gz問題解決に更新します。)
二、curlコマンドを実行する
1、client.pem+key.pemを使う
Crl-k--cert client.pem--key key.pemhttps://www.xxxx.com
 
2、all.pemを使う
curl-k--cert all.pem https://www.xxxx.com
 
-kを使用すると、サーバーの証明書をチェックしないので、サーバ証明書のエクスポート問題に関心を持たなくてもいいです。