問題タブ [gnutls]
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.
ssl - NGINX での gnutls と openssl のハンドシェイク
基盤となる TLS API として gnutls を使用して Web サーバーに接続する NGINX 内で SSL/TLS ストリーム プロキシをテストしています。gnutls (gnutls-serv) でコマンド ライン テスト ツールを使用すると、プロセス全体が機能しますが、ロジックが理解できません。
NGINX クライアント (実際のクライアントから gnutls サーバーへの HTTP 要求をプロキシする) は、接続を複数回ハンドシェイクしたいと考えているようです。実際、ほとんどのテストでは、サーバーがテスト Web ページで応答する前に、エラーなしで 3 回ハンドシェイクするようです。Wireshark を使用するか、メッセージをデバッグするだけで、(gnutls サーバーの観点から) クライアント側のソケットが閉じられ、別のポートで再度開かれているように見えます。最後に、接続が成功すると、gnutls は再開されたセッションを使用します。これは、前述の成功したハンドシェイクの 1 つだと思います。
この種の動作に関するドキュメントを見つけることができず、これが単に「NGINX のもの」であるかどうか疑問に思っています。
ハンドシェークは最終的にはテスト プログラムで機能しますが、(複数の高価なハンドシェークを行うのは) 無駄に思えます。クライアントが何をしようとしているのかを実際に理解しないと、非テスト環境でハンドシェーク ロジックを実装するのは難しいでしょう。
トランスポートでタイムアウトや問題が発生しているとは思いません。テスト環境は、1 つのスイッチ間で接続された同じサブネット上のいくつかの異なる VM です。
NGINX のバージョンは最新のメインライン: 1.11.7 です。私はもともと 1.10.something を使用していましたが、動作は似ていましたが、トランスポート エラーが多くなりました。これらのエラーは、アップグレードによってうまくクリーンアップされたようです。
他の人からの情報や経験は大歓迎です!
c - OpenSSL で PKCS11 トークンを使用した双方向 TLS 接続
サーバーへの TLS 1.2 接続を確立しようとしています。PKCS11 トークンに保存されている証明書とキーを使用する必要がありますが、OpenSSL でそのための正しい関数が見つからないようです。
[1] を使用して、gnuTLS で同様のものを実装しました。OpenSSL に対応する C/C++ 関数はありますか? 基本的に、トークンのロックを解除するには PIN が必要なので、オブジェクト パス (PKCS#7 形式) とコールバック関数を設定できるプログラム的な方法を探しています。
OpenSSL を使用して PKCS#11 トークンを統合することは可能ですか? 証明書とキーを設定できる関数を見つけましたが、ローカル マシン上のファイルとしてのみ設定できます [2]。
どんな助けでも大歓迎です。
[1] http://www.gnutls.org/manual/html_node/Using-a-PKCS11-token-with-TLS.html
[2] https://www.openssl.org/docs/man1.0.1/ssl/SSL_CTX_use_certificate_file.html
git - Bitbucket gnutls_handshake() が失敗しました: プル関数でエラーが発生しました
bitbucket を使用して新しく作成された Ubuntu 16.04 OS で問題が発生しています。bitbucketリポジトリからリポジトリを複製すると、以下のエラーが発生します
'my-demos' に複製しています... 致命的: ' https://amepani@bitbucket.org/amepani/my-demos.git/ ' にアクセスできません: gnutls_handshake() が失敗しました: プル関数でエラーが発生しました。
このリンクを確認しましたが、問題を解決できません。JDK バージョンを更新し、最新バージョンの git もインストールしましたが、同じエラーが発生します。
この問題を解決する方法を教えてください。
ssl - OpenVAS Go TLS 証明書エラー
現在、OpenVAS 用のカスタム スキャナーを開発中です。問題は、カスタム サーバーとのハンドシェイクが失敗することです。
問題を error -73
: GNUTLS_E_ASN1_TAG_ERROR
fromまでたどりましたgnutls_handshake
が、その問題に関するリソースが見つかりません。そのとき、証明書が正しくないことについて何かを読みましたが、OpenVAS 証明書を再生成する以外に何もできません。go サーバーの tls 機能は単純なものを使用しListenAndServeTLS
、サーバーの証明書とキーを取得します。
編集:これは、カスタム スキャナーの関連するネットワーク部分です。
func handle(conn net.Conn) {
}
関数メイン() {
}
これは例から取ったものですが、最初は正しく動作しませんでした (parsecertificates の前にデコードが行われませんでした)。そのため、証明書の形式が正しくない可能性がありますか?2 つのデコードを追加する前に、asn1 タグが一致しないという同様のエラーが発生しました。また、asn1 エラーです。独自の証明書を生成することを考えましたが、これが他のスキャナーの OpenVAS を壊さないかどうかはわかりません。goからlistenandservetlsを使用しただけでも同じ結果が得られました。エラーは間違いなく gnutls_handshake で発生します。そこからエラーコードしか出てこないのがもどかしい。