#author("2022-01-27T23:53:55+00:00","default:admin","admin") #author("2022-01-27T23:56:59+00:00","default:admin","admin") -[[SSL証明書の確認について調べてみた!⑤:https://www.kurodamon.com/server/ssl_cer_005/]] -[[WindowsにOpenSSLをインストールして証明書を取り扱う(基本編):https://www.atmarkit.co.jp/ait/articles/1601/29/news043.html]] *コマンド [#ye50e1ab] -[[opensslコマンド例文集:http://multix.jp/openssl-command/]] -SSL証明書の確認 openssl verify -partial_chain -trusted 【中間証明書】 【サーバ証明書】 -SSL証明書の内容確認 openssl x509 -text -noout -in [SSL証明書 ex)server.crt] -秘密鍵ファイルの内容を確認 openssl rsa -text -noout -in [秘密鍵ファイル] -CSRファイルの内容を確認 openssl req -text -noout -in [CSRファイル] -PFXファイルの確認 certutil -dump [PFXファイル] PFX パスワードの入力: *プログラミング [#h4201d8d] -[[SSL/TLS でアクセスしてみよう (1):http://x68000.q-e-d.net/~68user/net/ssl-1.html]] -[[SSL/TLS でアクセスしてみよう (2):http://x68000.q-e-d.net/~68user/net/ssl-2.html]] -[[[C言語] HTTPSクライアントを作ってみる:https://qiita.com/edo_m18/items/41770cba5c166f276a83]] -[[C 言語: OpenSSL を使って HTTPS クライアントをつくる:https://blog.sarabande.jp/post/82068392478]] -[[C 言語: OpenSSL を使って HTTPS サーバーをつくる:https://blog.sarabande.jp/post/82087204080]] -[[[C言語] HTTPSクライアントを作ってみる:https://qiita.com/edo_m18/items/41770cba5c166f276a83]] **前処理 [#b3158f3b] ***SSL_load_error_strings() [#h3b3d530] -OpenSSL のエラー文字列を読み込み -予め SSL_load_error_strings() を実行しておけば、(比較的) わかりやすいエラーメッセージが表示されるようになる ***SSL_library_init() [#n55b6acf] -SSL/TLS の初期化 -暗号方式やメッセージダイジェスト関数などが自動的に登録される ***SSL_CTX_new() [#waabad0b] -SSL_CTX構造体の生成(使用プロトコルの指定) ***SSL_new() [#m18982c8] -SSL_CTX 構造体にセットしたプロトコルや暗号化方式を元に、コネクションを管理する SSL構造体を新たに生成 ***SSL_set_session() [#ma184413] ***SSL_set_fd() [#p60a3bf1] -コネクション済のソケットとSSL構造体を結びつける ***SSL_connect() [#w6fc879a] -自動的にサーバとハンドシェイクが行われ、以下が確定となる --使用するプロトコル(SSLv2 / SSLv3 / TLSv1) --使用する暗号化方式・鍵交換方式・ハッシュ方式 --サーバ証明書の取得 --使用する共通鍵 ***SSL_get1_session() [#jd60def2] ***SSL_get_cipher() [#sd8e468e] ***SSL_get_cipher_version() [#r394bb6c] ***SSL_get_peer_certificate() [#w677e563] **送受信 [#o7b44378] ***SSL_write() [#d69e6abf] ***SSL_read() [#y124337b] **後処理 [#l36a91ce] ***SSL_shutdown() [#i1e45b9d] -SSL/TLS のコネクションを切断 -ソケットのコネクション切断は別 ***SSL_free() [#o8884fb9] -SSL_new() で確保した領域を開放 ***SSL_CTX_free() [#zeeaeb31] -SSL_CTX_new() で確保した領域を開放 ***ERR_free_strings() [#r9dde9f5] -SSL_load_error_strings() で確保した領域を開放 *エラー [#d944daea] **X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY [#j8d362f5] -[[SSL_CTX_load_verify_locations:https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html]] -[[How to fix X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY Squid error:https://docs.diladele.com/faq/squid/fix_unable_to_get_issuer_cert_locally.html]] -[[OPENSSL connection to a public server gives X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:https://stackoverflow.com/questions/24315526/openssl-connection-to-a-public-server-gives-x509-v-err-unable-to-get-issuer-cert]] -[[ssl - パブリックサーバーへのOPENSSL接続は、X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLYを提供します:https://ja.ojit.com/so/ssl/1101453]]