2014-01-15 31 views
5

現在、Cloudera Hadoop環境での暗号化シャッフルのセキュリティを実現するために実装された変更をテストしようとしています。エラー:140770FC:SSLルーチン:SSL23_GET_SERVER_HELLO:不明なプロトコル

証明書とキーストアを作成し、適切な場所に保管しました。

私はそのポート上のカールを行うと、私はエラーレスポンスの下に取得50060.

のTaskTrackerのHTTPSポートをテストしています。私はオープンSSLクライアントに確認していたとき、私はこの問題を引き起こしている可能性がありますかを把握することはできないんだけど、応答

[email protected]:~$ openssl s_client -connect 10.0.10.90:50060 
CONNECTED(00000003) 
139749924464288:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:749: 
--- 
no peer certificate available 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 7 bytes and written 225 bytes 
--- 
New, (NONE), Cipher is (NONE) 
Secure Renegotiation IS NOT supported 
Compression: NONE 
Expansion: NONE 
--- 

の下

[email protected]:~$ curl -v -k "https://10.0.10.90:50060" 
* About to connect() to 10.0.10.90 port 50060 (#0) 
* Trying 10.0.10.90... connected 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs 
* SSLv3, TLS handshake, Client hello (1): 
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 
* Closing connection #0 
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 

得ましたか。

紛失しているものがありますか?

PS:私はca-certificates.crtファイルを更新しても、10.0.10.90:50060に聞いて何のSSL/TLSサーバが存在しない表示されます/usr/share/ca-certificates/mozilla

答えて

3

error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

下サーバー.crtファイルを守ってきました。サーバーのリスニングがあり、SSL/TLSだけではありません。

ポート80(443ではなく)で私のゲートウェイに接続するときに複製できます。

$ openssl s_client -connect 192.168.1.1:80 
CONNECTED(00000003) 
140735109476828:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:787: 
--- 
no peer certificate available 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 7 bytes and written 517 bytes 
--- 
New, (NONE), Cipher is (NONE) 
Secure Renegotiation IS NOT supported 
Compression: NONE 
Expansion: NONE 
--- 

そして、あなたは-debugフラグを使用する場合は、OpenSSLはSSL/TLSプロトコルデータとして解釈しようとしていることを受けてHTTPが表示されます。

$ openssl s_client -connect 192.168.1.1:80 -debug 
CONNECTED(00000003) 
write to 0x7fbf58422b90 [0x7fbf58811800] (348 bytes => 348 (0x15C)) 
0000 - 16 03 01 01 57 01 00 01-53 03 03 64 1d 01 29 f0 ....W...S..d..). 
... 
0150 - 03 02 01 02 02 02 03 00-0f 00 01 01    ............ 
read from 0x7fbf58422b90 [0x7fbf58816e00] (7 bytes => 7 (0x7)) 
0000 - 48 54 54 50 2f 31 2e        HTTP/1. 
140735203164636:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794: 
+0

私のApacheサーバでこの問題が発生しました。 'my.host.com:80 [IPv6_address] - - [24/Jan/2016:00:29:23 +0100]" \ x16 \ x03 \ x01 \ x02 "400というアクセスログは、 " - " " - "または "my.host.com:443 [IPv6_address] - - [24/Jan/2016:00:29:23 +0100]" \ x16 \ x03 \ x01 \ x02 "400 0" - " " - "私は非常に奇妙だと分かった。しかし答えはそこにあった:クライアントが接続に使用したIPv6アドレス。どうして?私は知らない。しかし、あなたは答えが私に最後のヒントを与えた:誰も彼らのために聞いていなかった。だからここには一致しない。 – func0der

0

この問題を持っている人には:

error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol.

私の問題は、ipv4の代わりにipv6をデフォルトで使用してカールしたことでした。エンドサーバがipv6に応答するように適切に設定されていないため、同じ問題が発生しました。カールがipv4を使用していることを確認するか、サーバーがipv6を実行できるか確認してください。

0

私はノードのJSでのNeo4jを接続しようとしたときに、私は、関連する問題があった:

だから、これは私のコードです:

'var express = require ('express'); 
var path = require('path'); 
var logger = require('morgan'); 
var bodyParser = require('body-parser'); 
var neo4j = require('neo4j-driver').v1; 

var app = express(); 

//View Engine 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 

app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(express.static(path.join(__dirname, 'public'))); 


var driver=neo4j.driver("bolt://localhost:7474", neo4j.auth.basic("neo4j14", "neo4j")); 
var session = driver.session(); 

app.get('/', function(req, res){ 

session 
    .run("MATCH (snackhouse:Snackhouse) RETURN snackhouse LIMIT 25") 
    .then(function(result){ 
     result.records.forEach(function(record){ 
     console.log(record); 
     });  
    }) 
    .catch(function(err){ 
     console.log(err); 
    }); 
    res.send('It Works!'); 
}); 


app.listen(3000); 
console.log('Server Started on port 3000'); 

module.exports = app;' 

//と、このエラーは私のコマンドラインに表示されます。

{ Error: 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:794: 

at Neo4jError.Error (native) 
at new Neo4jError (C:\neo4j\node_modules\neo4j-driver\lib\v1\error.js:65:132) 
at newError (C:\neo4j\node_modules\neo4j-driver\lib\v1\error.js:55:10) 
at NodeChannel._handleConnectionError (C:\neo4j\node_modules\neo4j-driver\lib\v1\internal\ch-node.js:322:41) 
at emitOne (events.js:96:13) 
at TLSSocket.emit (events.js:188:7) 
at emitErrorNT (net.js:1278:8) 
at _combinedTickCallback (internal/process/next_tick.js:74:11) 
at process._tickCallback (internal/process/next_tick.js:98:9) code: 'SessionExpired' } 

これを修正するにはどうすればいいですか?「

関連する問題