OpenSSL と Lynx Web ブラウザをコンパイルしたところです。HTTPS Web サイトを閲覧したいと思います。それらのサイトが使用する CA から証明書を取得する必要があり、また自分自身の証明書も必要だと理解しています。Web ブラウザは OpenSSL を適切に呼び出しますが、CA 証明書の初期リストがないため、インターネットを閲覧できません。
これらの証明書を取得し、OpenSSL でそれらを使用できるようにする方法を説明したドキュメントを持っている人はいますか?
ありがとう
答え1
ブラウザでSSL/TLSを使用するには、さまざまな認証局のルート証明書をブラウザにインストールする必要があります。これらの証明書があれば、ブラウザは署名鍵を認識し、受け入れることができます。こちらをご確認くださいMozilla にインストールされている CA のリストと証明書自体。
PS 証明書をインストールするには、ブラウザのドキュメントを確認してください。
答え2
これらの証明書を取得し、OpenSSL でそれらを使用できるようにする方法を説明したドキュメントを持っている人はいますか?
リンクスよりREADME.sslcerts
:
予備手順:
openssl が正しくインストールされ、デフォルトの証明書ディレクトリが /usr/local/ssl/certs であり (通常は /etc/ssl/certs ですが、説明の出発点が必要です)、lynx が --with-ssl でコンパイルされていることを前提としています。
システム上の証明書のデフォルトの場所は異なるか、存在しない可能性があります。次の手順で /usr/local/ssl/certs をその場所に置き換えるか、環境変数を設定する必要があります。
システム上の証明書のデフォルトの場所を確認するには、次のコマンドを実行します。
strings libcrypto.a | grep -in cert | less
SSL_CERT_DIR
この出力で、と、およびそれらのすぐ上の行を探しますSSL_CERT_FILE
。これは、それぞれ証明書と CA 証明書バンドル cert.pem のデフォルトの場所です。もちろん、libcrypto.a がどこにあるかを知っておく必要があります。出力例:
7490:/etc/ssl/certs 7491:/etc/ssl/cert.pem 7492:SSL_CERT_DIR 7493:SSL_CERT_FILE
その他の可能な出力例:
31555:/usr/local/ssl/certs 31556:/usr/local/ssl/cert.pem 31557:SSL_CERT_DIR 31558:SSL_CERT_FILE
OpenSSL がインストールされると、c_rehash ユーティリティは bin ディレクトリ (デフォルト
/usr/local/ssl/bin
) にインストールされることに注意してください。システム上の場所を知っておく必要があります。コマンド:whereis c_rehash
おそらく有用な結果が得られるでしょう。
OpenSSL には CA 証明書バンドルが配布されていないことにも注意してください。OpenSSL チームは、特にこれを行わないことを決定しました。信頼できる証明書のセットを取得するかどうかはインストーラーに委ねられています。
最新バージョンの Internet Explorer から信頼されたルート証明書のバンドルを取得するのは、もはや簡単な手順ではありません。複数の証明書を DER 形式のファイルとしてエクスポートすることはできなくなりました。DER のエクスポートは単一の証明書の抽出のみで、DER が PEM に変換されます。
Apple OS X にアクセスできるユーザーは、Keychain Access System Roots からすべての証明書を .pem ファイルとしてエクスポートできます。これを SSL_CERT_DIR に配置してハッシュすれば完了です。
MirOS BSD プロジェクトもそれらを提供しています。それらを変換してインストールする手順については、このドキュメントの後半で詳しく説明します。lynx によって信頼される市販の証明書だけが必要な場合は、数行下の「CA バンドルのインストールまたは更新」セクションまでスキップできます。
抽出された Mozilla 証明書バンドルは、curl プロジェクトからダウンロードできます。caextract は、C++ のネイティブ API です。Mozilla ソースから抽出するスクリプトも含まれています。