SSL probléma

Fórumok

Van egy szerver, ami a következőket produkálja:

> wget https://akarmi
--2012-04-28 21:28:19-- https://akarmi/
akarmi (akarmi) feloldása… 1.2.3.4, 2a01:a:b:c::2
Csatlakozás a következőhöz: akarmi (akarmi)[2a01:a:b:c::2]:443… kapcsolódva.
OpenSSL: error:260B9092:engine routines:ENGINE_get_cipher:unimplemented cipher
OpenSSL: error:0607B086:digital envelope routines:EVP_CipherInit_ex:initialization error
OpenSSL: error:140943FD:SSL routines:SSL3_READ_BYTES:tlsv1 alert decryption failed
Nem lehet létrehozni SSL-kapcsolatot.

"akarmi" alatt azokat kell érteni, amit így próbáltam gyorsan. Ugyanezek az url-ek curl-lel mennek.

Ugyanígy nem megy pl. PHP-ból a SOAP client:
PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://akarmi' : failed to load external entity "https://akarmi"\n in /srv/www/x.com/dir/getTransactionIdAndPaymentMethds.php on line 11

DE! 'openssl s_client -connect akarmi:443' pl. tökéletesen működik, és tudok beszélgetni a webszerverrel.

Ilyennel találkozott már valaki? Ez mi? Próbáltam már újratelepíteni force az opensslt, de nem segít.

Köszi előre is.

[szerk]
1. 'wget https://gmail.com' pl. működik....
2. openssl.cnf-et diff-eltem másik, működő gépen lévővel, semmi különbség

Hozzászólások

wget-nél a --secure-protocol kapcsoló nincs bedrótozva valamelyik config file-ban?

Illetve az s_client-et próbáld meg -state / -debug / -msg kapcsolókkal meghívni, hogy látsszon, mi folyik.

Nem hiszem hogy lenne bármi konfig is, továbbá azon a gépen semmilyen userrel nem megy, és mint írtam php-ból sem.

Ilyet látok a kapcsolókkal mindössze, ami első blikkre gyanús lehet, de ezt olyan gépen is írja, amin megy:
verify error:num=20:unable to get local issuer certificate
verify return: 0
--
Discover It - Have a lot of fun!

Az a gyanúm, hogy a wget valamiért nem tartalmazza a megfelelő ssl kódot. Esetleg nézd meg ezt: ldd /usr/bin/wget

Másrészt semmit sem írtál arról, hogy milyen oprendszer, milyen os verzió, milyen wget verzió, stb. Megosztanád velünk?

Linuxscripting


# ldd /usr/bin/wget
        linux-vdso.so.1 =>  (0x00007fffbb08d000)
        libproxy.so.1 => /usr/lib64/libproxy.so.1 (0x00007f9de609f000)
        libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007f9de5e43000)
        libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007f9de5a92000)
        libidn.so.11 => /usr/lib64/libidn.so.11 (0x00007f9de585f000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f9de5656000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f9de52e9000)
        libmodman.so.1 => /usr/lib64/libmodman.so.1 (0x00007f9de50cd000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9de4eb0000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f9de4ba7000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9de4991000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f9de478d000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f9de4575000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f9de62c5000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f9de431e000)

Opensuse 11.4 x64, wget-1.13.4-31.1.x86_64, de ez épp lényegtelen szerintem, van vagy 4 másik ugyanilyen os, amin működik.

--
Discover It - Have a lot of fun!

"unimplemented cipher"?

openssl engine -t

Ez a parancs nem mond valami érdekeset?

Az OpenSSL hibaüzenetei mondjuk valami rettenetesek, simán lehet, hogy más a gond (pl. tud ilyeneket mondani akkor is, ha nem érti a CA certificate-en lévő aláírást készítő algoritmust).

Minden más hibátlanul működik, az FTP meg SFTP is. És mint írtam, ugyanaz az URL, ami wget-tel nem megy, curl-lel igen.

[szerk]
Tessék egy példa:


[17:22:58] root@pluto:/etc # wget -O - https://www.otpbank.hu
--2012-05-01 17:23:07--  https://www.otpbank.hu/
www.otpbank.hu (www.otpbank.hu) feloldása… 195.228.112.250
Csatlakozás a következőhöz: www.otpbank.hu (www.otpbank.hu)[195.228.112.250]:443… kapcsolódva.
OpenSSL: error:260B9092:engine routines:ENGINE_get_cipher:unimplemented cipher
OpenSSL: error:0607B086:digital envelope routines:EVP_CipherInit_ex:initialization error
Nem lehet létrehozni SSL-kapcsolatot.
[17:23:07] root@pluto:/etc # curl https://www.otpbank.hu
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=https://www.otpbank.hu/portal/hu/fooldal">[17:23:08] root@pluto:/etc # 
[17:23:10] root@pluto:/etc # openssl s_client -connect www.otpbank.hu:443
CONNECTED(00000003)
depth=2 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/1.3.6.1.4.1.311.60.2.1.3=HU/businessCategory=Private Organization/serialNumber=01-10-041585/C=HU/postalCode=1051/ST=Budapest/L=Budapest/street=Nador utca 16./O=OTP Bank Nyrt./OU=ITUIG/CN=www.otpbank.hu
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL SGC CA
 1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL SGC CA
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
 2 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
   i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGNDCCBRygAwIBAgIQbCD22BYUbxd3A9pRfmaTYDANBgkqhkiG9w0BAQUFADCB
vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug
YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv
VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew
HhcNMTEwNTMwMDAwMDAwWhcNMTIwNTI5MjM1OTU5WjCB6DETMBEGCysGAQQBgjc8
AgEDEwJIVTEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6YXRpb24xFTATBgNVBAUT
DDAxLTEwLTA0MTU4NTELMAkGA1UEBhMCSFUxDTALBgNVBBEUBDEwNTExETAPBgNV
BAgTCEJ1ZGFwZXN0MREwDwYDVQQHFAhCdWRhcGVzdDEXMBUGA1UECRQOTmFkb3Ig
dXRjYSAxNi4xFzAVBgNVBAoUDk9UUCBCYW5rIE55cnQuMQ4wDAYDVQQLFAVJVFVJ
RzEXMBUGA1UEAxQOd3d3Lm90cGJhbmsuaHUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDAoIJ2AvQgdjZ4Kc8dd/ptJgeztqhsRzXhxfFLUwToVSjfw3T/
dT9pIbukgxJ4kLlB+DIf8Wm0f9TximBZwTW1+ejhDuZsBhI8/cwj/Ahixjh3Ueva
NpPyk4gP6WkAmL/c9s8UyOF3PbLXP0hO2GBA1tsWM7sSTb/Gq8FPEsrgldZtfZ5n
4o7bK+CAs7bVqJZYjaB5S6nCK46xIc3KEWIUFR1nCxLJMXxphyIetH9XoMgNEY7s
AtbhZSPd8Xh+e6j1OHladcVnygEVeyYuYkqdmNPzhTgMvy+RNxQqJSjABj42Db2A
/52UJCpNbkH8J1JTqnSExZ11NySeMSpZ3txpAgMBAAGjggIAMIIB/DAJBgNVHRME
AjAAMB0GA1UdDgQWBBQRrfPjtSnr3jbGtshZ+Q3kLCpBujALBgNVHQ8EBAMCBaAw
RAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXBjAqMCgGCCsGAQUFBwIBFhxodHRwczov
L3d3dy52ZXJpc2lnbi5jb20vcnBhMD4GA1UdHwQ3MDUwM6AxoC+GLWh0dHA6Ly9F
VkludGwtY3JsLnZlcmlzaWduLmNvbS9FVkludGwyMDA2LmNybDA0BgNVHSUELTAr
BggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEAQYKKwYBBAGCNwoDAzAfBgNV
HSMEGDAWgBROQ8gddu83U3pP8lhvlPM44tW93zB2BggrBgEFBQcBAQRqMGgwKwYI
KwYBBQUHMAGGH2h0dHA6Ly9FVkludGwtb2NzcC52ZXJpc2lnbi5jb20wOQYIKwYB
BQUHMAKGLWh0dHA6Ly9FVkludGwtYWlhLnZlcmlzaWduLmNvbS9FVkludGwyMDA2
LmNlcjBuBggrBgEFBQcBDARiMGChXqBcMFowWDBWFglpbWFnZS9naWYwITAfMAcG
BSsOAwIaBBRLa7kolgYMu9BSOJsprEsHiyEFGDAmFiRodHRwOi8vbG9nby52ZXJp
c2lnbi5jb20vdnNsb2dvMS5naWYwDQYJKoZIhvcNAQEFBQADggEBAJO1+Ju4gf/x
lvB3rtZ7DROr4EuVBs2+fWLAuyHKdD6gC4UaDDM0Bzq/84QNtMeg1/8M+qWw4cO/
RHhvYJodHnWSWOvvSeizYd1MtEHI1Svr5onkMez7I/HYfoWWZOliC9KaBUHQ46f6
vVhQKhgVDwfEjYZ4oN+VkcbTnqmOO1eGYhzrO6xYozr+zJjcDQPapIGbfjvR1ilq
aGUSFndppbzNdlLaahzRgTSCRc4UmKI+wZHd5ZKP055LCIHYM1rjTWtN9IhcEgcc
sz4bx+mz0QngcspEcOanG+Zdn9+rLQdyZDXW5xh8PbUbmzjyBYP4CBbPQq7j9auB
DFoOxHCkbQk=
-----END CERTIFICATE-----
subject=/1.3.6.1.4.1.311.60.2.1.3=HU/businessCategory=Private Organization/serialNumber=01-10-041585/C=HU/postalCode=1051/ST=Budapest/L=Budapest/street=Nador utca 16./O=OTP Bank Nyrt./OU=ITUIG/CN=www.otpbank.hu
issuer=/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL SGC CA
---
No client certificate CA names sent
---
SSL handshake has read 4630 bytes and written 535 bytes
---
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: B03700003A747B4A52B6070DA3792BF794B233AF6E7419871BF7462B7D8627A8
    Session-ID-ctx: 
    Master-Key: 8E893849535776842DCEB16611586CD225A023E6D629458A02B87A260034EBE22226E482504DC37FC6240876F23C561E
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1335885793
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---
GET https://www.otpbank.hu/ HTTP/1.1

HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 84
Date: Tue, 01 May 2012 15:23:35 GMT
Content-Type: text/html
ETag: "322aebf91014ca1:0"
Accept-Ranges: bytes
Last-Modified: Mon, 03 Aug 2009 08:04:07 GMT
X-Powered-By: ASP.NET

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=https://www.otpbank.hu/portal/hu/fooldal">
quit
HTTP/1.1 400 Bad Request ( The data is invalid.  )
Connection: close
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
Content-Length: 1962  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML dir=ltr><HEAD><TITLE>The page cannot be displayed</TITLE>
<STYLE id=L_defaultr_1>A:link {
        FONT: 8pt/11pt verdana; COLOR: #ff0000
}
A:visited {
        FONT: 8pt/11pt verdana; COLOR: #4e4e4e
}
</STYLE>

<META content=NOINDEX name=ROBOTS>
<META http-equiv=Content-Type content="text-html; charset=UTF-8">

<META content="MSHTML 5.50.4522.1800" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<TABLE cellSpacing=5 cellPadding=3 width=410>
  <TBODY>
  <TR>
    <TD id=L_defaultr_0 valign=middle align=left width=360>
      <H1 id=L_defaultr_2 style="FONT: 13pt/15pt verdana; COLOR: #000000"><ID id=L_defaultr_3><!--Problem-->The page cannot be displayed
</ID></H1></TD></TR>
  <TR>
    <TD width=400 colSpan=2><FONT id=L_defaultr_4
      style="FONT: 8pt/11pt verdana; COLOR: #000000"><ID id=L_defaultr_5><B>Explanation: </B>There is a problem with the page you are trying to reach and it cannot be displayed.</ID></FONT></TD></TR>
  <TR>
    <TD width=400 colSpan=2><FONT id=L_defaultr_6 
      style="FONT: 8pt/11pt verdana; COLOR: #000000">
      <HR color=#c0c0c0 noShade>

      <P id=L_defaultr_7><B>Try the following:</B></P>
      <UL>
        <LI id=L_defaultr_8><B>Refresh page:</B> Search for the page again by clicking the Refresh button. The timeout may have occurred due to Internet congestion.
<LI id=L_defaultr_9><B>Check spelling:</B> Check that you typed the Web page address correctly. The address may have been mistyped.
<LI id=L_defaultr_10><B>Access from a link:</B> If there is a link to the page you are looking for, try accessing the page from that link.

      </UL>
      <HR color=#c0c0c0 noShade>

      <P id=L_defaultr_11>Technical Information (for support personnel)</P>
      <UL>
        <LI id=L_defaultr_12>Error Code: 400 Bad Request. The data is invalid. (13)

        </UL></FONT></TD></TR></TBODY></TABLE></BODY></HTML>

read:errno=0
[17:23:32] root@pluto:/etc #

--
Discover It - Have a lot of fun!

Először van a client hello és utána a server hello. A client hello-ban többek között elmondja a kliens, hogy ő milyen titkosítási módokat támogat, amit a szerver összevet a saját listájával. Ha csinálsz egy-egy tcpdump-ot a sikeres és a sikertelen kapcsolatról, akkor pl. wireshark-kal meg tudod nézni, hogy mit küld a kliens az egyes esetekben.

A wget konfigjában nincs valami beállítva? Az SSL-t használó alkalmazások egy részénél meg lehet adni a támogatott cipher listát.

Igen igen, valóban ez a sorrend, azt csak úgy írtam, hogy azok megvannak. :)

Teljesen ugyanazokat az eljárásokat mondja a wget és a curl is.

Nem csak a wget a probléma, letojnám ha csak az nem menne... Hanem a soapclient sem megy, valszeg ugyanezért, mert egy elég érdekes hibát dob. De biztos ami biztos alapon, a programozó kiszedi a kapcsolódó kódot egy önálló phpba, átviszem másik gépre és megnézem ott mit produkál.
--
Discover It - Have a lot of fun!

Ötlet?

Közben lelkiekben készülök a reinstallra...

[szerk] Még annyi jutott eszembe közben, ez a gép annyival különbözik a többitől, hogy ezen működik openvpn... Előfordulhat, hogy mikor azt konfigoltam, akkor annak a certgenerálásával elq*rtam valamit? A /usr/share/openvpn/easy-rsa/2.0 alatti scripteket használtam.
--
Discover It - Have a lot of fun!

Na akkor most szétteszem a kezem, és gondolkozok miért nem lettem inkább pék vagy cukrász...
Egy az egybe lekopiztam az éles gépet az adatokat kivéve, betettem egy virtuális gépbe, fstab, es grubot írtam át mindössze, és működik ez a fos ganéj... Ilyenkor wtf van?
--
Discover It - Have a lot of fun!

Nem tudom mit kellene megváltoztatnom...


Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off

--
Discover It - Have a lot of fun!

Közben a soap client probléma megoldódott, a legprimitívebb hiba volt.... Nem volt fent a php5-openssl csomag :). Jól benéztem...
A wget-es probléma viszont továbbra is áll, érdekességképpen.
--
Discover It - Have a lot of fun!

Tegyuk hozza, hogy forrasbol forditott wgettel a hiba nem reprodukalhato. Az openSUSE rpm-ben engedelyezve van par opcio, ami a forditottban nem (tobbek kozott IRI, IDN support, valamint a libproxy).

Mintha a nevfeloldassal/getaddrinfo-val lenne baja.

Annyi biztos, hogy a kovetkezoket a mukodo wget is produkalja, tehat ezek nem okozhatjak a problemat:


stat("/etc/ssl/certs/ae8153b9.1", 0x7fff507a7980) = -1 ENOENT (No such file or directory)

connect(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), 
sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)