問題タブ [libressl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4291 参照

windows - Windows で LibreSSL を実行する方法はありますか?

Windows で OpenSSL の代わりに LibreSSL を使用したいのですが、まだディストリビューションが見つかりません。私はそれを逃しましたか?または、自分でコンパイルする複雑すぎない方法はありますか?

0 投票する
2 に答える
994 参照

c++ - OpenSSL 証明書を正しく適用するにはどうすればよいですか?

私は現在、実質的にチャットサーバーとは何かをいじっています。ユーザーをあまり公開したくないので、OpenSSL ライブラリの LibreSSL のフォークを使用して TLS 暗号化を追加しました。コードの残りの部分は正常に動作しているように見えますが、証明書を正しく処理していないと思います。

通信を暗号化するためだけでなく、サーバーが本当にクライアントが話したい相手であることを確認するために使用する必要があるプライベート/パブリック証明書をサーバー上に持っています。そして、それは私が理解できない部分です:

  1. サーバーの公開鍵をクライアントに渡すにはどうすればよいですか? 正しいサーバーと通信していることを確認するために必要です。それとも、ルート CA の証明書を含めて何か別のことをする必要がありますか? それを提供するAPIはありますか?公開鍵を実行可能ファイルと一緒に としてパッケージ化できますが.pem、クライアント要求に使用する公開サーバー鍵またはルート CA について OpenSSL に伝える API が見つかりません。

  2. クライアント用のシステム証明書を取得するにはどうすればよいですか? 今は.pemファイルに作成したばかりですが、クライアントをダウンロードするすべてのユーザーに対して一意の証明書を使用して新しいダウンロードを作成する必要はありません。確かに、「現在のユーザーの証明書」を取得する方法、またはOpenSSL APIを介してこの使用のために自動生成する方法はありますか?

誰かが使用する適切な API を教えてくれたら、それは素晴らしいことです! また、手がかり、SOに関する同様の質問へのリンク、チュートリアル、OpenSSL暗号初心者向けの書籍へのポインタ、回答、またはサンプルコードも取得します。

現在、クライアント プログラムとサーバー プログラムの両方で証明書を設定するためにSSL_CTX_use_certificate_file()との両方を使用しています。SSL_CTX_use_PrivateKey_file()上記のリンク先の Github チャット サーバー リポジトリでコードを確認できます。eleven_session.cpp

0 投票する
2 に答える
1364 参照

ssl - string.h:29:8: エラー: 予想される識別子

このスクリプトを使用して、カスタム openssl »libressl« で nginx をコンパイルしようとしています

libressl 2.1.1 を使用すると、すべて正常に動作します。問題は、libressl 2.1.1 にセキュリティ上の問題があり、新しいリリースで解決されていることです。
ただし、ビルドを libressl 2.1.2 または libressl 2.1.3 (最新バージョン) で動作させることができません。

私が得る問題:

問題とその解決方法は何ですか?
助けてくれてありがとう。

0 投票する
1 に答える
789 参照

c++ - Google 検索の ssl pem 証明書を取得する

テスト目的で、Google への https 接続をセットアップして検索を開始したいと考えています。ここから OpenSSL の例をダウンロードしました。コードでは、ここに pem ファイルをロードする必要があります。

今、Google検索の証明書を検索しています。どこで入手できますか?

0 投票する
2 に答える
3509 参照

c++ - クライアント TLS 接続用の OpenSSL または LibreSSL C++ サンプル

C++ でクライアント TLS 接続の例を探しています。Visual Studio に最適ですが、正直なところ、どのコンパイラでもかまいません。いくつかの C サンプルを見つけました。しかし、誰も働いていませんでした。私は C でこのサンプルから始めました: https://wiki.openssl.org/index.php/SSL/TLS_Client

しかし、それは失敗します

自分の node.js サーバーに (直接 IP アドレスを使用して) 接続する場合は「システム ライブラリ」を使用するか、url として encrypted.google.com を使用して「不正なホスト名ルックアップ」を使用します。libressl と Visual Studio 2013 の両方。

次の目的地: http://fm4dd.com/openssl/sslconnect.htm

ここで、プログラムは正常に実行されます。ただし、最後に SSL 接続に書き込もうとすると、次のようになります。

サーバーに接続を強制的に閉じさせます(node.jsに詳細を伝える方法がわからないため、何が起こったのか正確にはわかりません)。

そこで、実際に動作するサンプルを検索するか、C++ で実行されている独自の証明書を使用して TLS 接続を取得する方法を検索します

0 投票する
1 に答える
84 参照

perl - Perl ビルド スクリプトでの LibreSSL のテスト

Net::NSCAng::Client少し前にリリースしましたが、OpenBSD で多くのテストの失敗が発生しています。その理由は、NSCAng プロトコルが事前共有鍵モード (RFC4279) で OpenSSL を使用するためです。これは、LibreSSL (現在の OpenBSD のデフォルト) の人々が切り出したものです。しかし、彼らはこれを最も不透明な方法で行うことに必死だったようです。インクルード ファイルにはすべての関数が定義されており、共有ライブラリには対応するシンボルが欠けているだけなので、コンパイルは正常に機能しますが、テストは失敗します。

OpenBSD には eopenssl と呼ばれる互換パッケージがあり、最初に Makefile.PL でこれをテストすることにより (を使用して) 、互換ライブラリがインストールされている場合ExtUtils::PkgConfigに動作させることができます。そうでない場合でも、物事は失敗します。

CPP シンボル OPENSSL_NO_PSK を確認できましたが、インクルードは常に LibreSSL から取得されるため、eopenssl とのリンクが正常に機能する場合でも、これは失敗します。私が残した唯一のアイデアは、autoconf が行うように、コンパイル段階の一部としてテスト プログラムを実行することです。ExtUtils::MakeMakerそれは(または他の何か-必要に応じてビルドシステムを切り替えてもかまいません)でも可能ですか?

0 投票する
5 に答える
368081 参照

macos - macOS に wget をインストールするには?

MAC OS 10.11.1 に wget をインストールしようとしましたが、実行する./configure --with-ssl=opensslと次のエラーが発生しました。

OSX 10.11.1 でこの問題を解決するにはどうすればよいですか?

0 投票する
0 に答える
423 参照

python - Windows で LibreSSL を使用して python-cryptography を構築する

Visual Studio 2015 を使用して Windows 7 x64 で Python 3.5 用の暗号化モジュールを構築し、LibreSSL にリンクしたいと考えています。手動ビルドのドキュメントのガイドに従おうとし、INCLUDE と LIB を適切な LibreSSL ディレクトリに設定しました。しかし、(予期せず) LibreSSL ヘッダーに関する構文エラーが発生します。以前は、同じマシンで問題なく LibreSSL をビルドできました。

ビルド ログ: http://pastie.org/private/p3rakrxljcgugttc2yg5q (開発者コマンド プロンプト)

それを行う最良の方法は何ですか?

0 投票する
1 に答える
565 参照

libressl - libtls: select() と tls_read() の連携

何年も前に書いた古いチャット アプリケーションに SSL サポートを追加したいと考えています。私は OpenSSL と LibreSSL について多くのことを読み、新しい libtls API を試すことにしました。開発者はこれに関して本当に素晴らしい仕事をしたと思います。非常に使いやすいことがわかりました。必要に応じて既存のコードをほとんど変更する必要はありません。しかし、ここで私が今理解しなければならないことが1つあります。

ある日、select() を使用してソケットを監視し、recv() を使用してデータを読み取っていました。これらの関数は両方ともファイル記述子で動作するため、これは簡単でした。

現在、libtls では、関数 tls_read() は最初の引数として tls コンテキストを必要とします。つまり、記述子を読み取る準備ができるたびに、クライアントのリストを検索して適切な tls コンテキストを取得する必要があります。これはそれほど難しいことではありませんが、誰かがより良い解決策を知っているのではないでしょうか? すべてのコメントとコード サンプルに感謝します。