2015-04-05 1 views
2

Когда я пытаюсь подключиться к моему серверу удаленно, я получаю следующую ошибку.Служба Dropwizard SSL продолжает возвращать ошибку - сервер прервал SSL-квитирование

$ curl -k --verbose https://myserver.com:9010/test 
* Adding handle: conn: 0x7f8bfb801a00 
* Adding handle: send: 0 
* Adding handle: recv: 0 
* Curl_addHandleToPipeline: length: 1 
* - Conn 0 (0x7f8bfb801a00) send_pipe: 1, recv_pipe: 0 
* About to connect() to myserver.com port 9010 (#0) 
* Trying <myserver ip>... 
* Connected to myserver.com (myserver ip) port 9010 (#0) 
* Server aborted the SSL handshake 
* Closing connection 0 
curl: (35) Server aborted the SSL handshake 

Однако, если я запустил эту самую команду с сервера, на котором выполняется служба, соединение завершается успешно.

Я использую самозаверяющий сертификат. Для создания моего сертификата я использовал руководство по адресу codeproject.com. И мой Dropwizard server конфигурации является: -

server: 
    requestLog: 
     timeZone: UTC 
     appenders: 
     - type: file 
      currentLogFilename: logs/requests.log 
      archivedLogFilenamePattern: logs/requests-%d.log 
      archivedFileCount: 3 
      threshold: ALL 
    applicationConnectors: 
    - type: https 
     port: 9010 
     keyStorePath: myserver.keystore 
     keyStorePassword: password 
     certAlias: myserverAlias 
     validateCerts: false 
     trustStorePath: /etc/pki/java/cacerts 
    adminConnectors: 
    - type: https 
     port: 9011 
     keyStorePath: myserver.keystore 
     keyStorePassword: password 
     certAlias: myserverAlias 
     validateCerts: false 
     trustStorePath: /etc/pki/java/cacerts 

Кроме того, я не вижу никакой ошибки в журналах.

Дополнительная информация

Успешное соединение внутри сервера выглядит следующим образом.

$ curl -k --verbose https://myserver.com:9010/test 
* Trying <myserver ip>... 
* Connected to myserver.com (myserver ip) port 9010 (#0) 
* Initializing NSS with certpath: sql:/etc/pki/nssdb 
* skipping SSL peer certificate verification 
* SSL connection using TLS_DHE_DSS_WITH_AES_128_CBC_SHA 
* Server certificate: 
* subject: CN=myserver.com,OU=TECH,O=AppleGrew,L=HYD,ST=TS,C=IN 
* start date: Apr 05 06:16:32 2015 GMT 
* expire date: Apr 04 06:16:32 2018 GMT 
* common name: myserver.com 
* issuer: CN=myserver.com,OU=TECH,O=AppleGrew,L=HYD,ST=TS,C=IN 
> GET /test HTTP/1.1 
> User-Agent: curl/7.40.0 
> Host: myserver.com:9010 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
< Date: Mon, 06 Apr 2015 06:01:23 GMT 
< Content-Type: application/json 
< Vary: Accept-Encoding 
< Content-Length: 99 
< 
* Connection #0 to host myserver.com left intact 
{"status":"OK","message_type":"INFO","message_recipient":"SYSTEM","testMsg":"The service is live!"} 

Тем не менее, версия curl работает на стороне сервера и удаленного на стороне клиента различны.

стороны сервера это:

curl 7.40.0 (x86_64-redhat-linux-gnu) libcurl/7.40.0 NSS/3.16.2 Basic ECC zlib/1.2.8 libidn/1.18 libssh2/1.4.2 
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets 

стороны клиента является:

curl 7.30.0 (x86_64-apple-darwin13.0) libcurl/7.30.0 SecureTransport zlib/1.2.5 
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz 

Update

я смог подключиться к серверу с удаленной системы Linux , Локон версию на этой системе: -

curl 7.19.7 (i686-pc-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 
+0

Возможно, сервер не поддерживает комплекты SSL-шифров, представленные в OS X. Трассировка lan будет отображать все. – jwilleke

ответ

1

Просто думаю, потому что ваш вопрос не хватает необходимых деталей:

  • у вас есть другая версия завитка на вашем клиенте и на сервере
  • ваша установка сервера вызывает любые различия между вашими завитущими версиями, например:
    • поддержка RC4 отключена в новых версиях
    • поддержка S SL 3,0 отключена в новых версиях
    • не шифры не перекрывают друг друга
    • ...

Чтобы получить дополнительную помощь, вы должны предоставить версии и SSL стеки завитка вы используете (curl -V), на стороне сервера настройки и, возможно, отладочный вывод (curl -v) для успешных и неудачных подключений.

  • сервер прервали SSL рукопожатия

Из-за этого вы должны также взглянуть на бревнах на стороне сервера.Возможно, даже брандмауэр блокирует соединения, поэтому вы можете проверить, вообще ли сервер подключен к нему.

+0

Вы просмотрели журналы сервера? –

+0

Да, но в журналах сервера нет ошибок. Я посмотрел журналы Dropwizard, вы имеете в виду любой другой журнал? – AppleGrew

+0

Вы проверили, что сервер получает запрос вообще? Между ними может быть межсетевой экран. –