HTTPS via LuaSec

108 views
Skip to first unread message

Guilherme Lopes

unread,
Jan 26, 2010, 9:00:52 AM1/26/10
to Lua BR
Olá,

Alguém já teve sucesso usando LuaSec para conexões HTTPS externas?
Estou tentando acessar um serviço seguro do Google mas recebe sempre a
mensagem "wrong version number", o código segue abaixo:

local https = require("ssl.https")
local one, code, headers, status = https.request {
url = "https://www.google.com/accounts/ServiceLogin",
protocol = "sslv3",
options = "all",
verify = "none",
}
print(one)
print(code)

Já tentei as versões sslv23 e tlsv1, sem sucesso também.

Devo ter o certificado instalado na máquina para especificá-lo na
conexão?

Se alguém tiver alguma idéia será bem vinda.

Abraços,
Guilherme Lopes

Pablo Musa

unread,
Jan 26, 2010, 12:26:27 PM1/26/10
to lua...@googlegroups.com
Oi Guilherme,

você sabe qual o erro que está dando?
Eu testei aqui e seu código está OK.

Um problema que eu tive foi na função require.
Minha instalação foi feita pelo luarocks e para usar a biblioteca tive de fazer

require"ssl"
require"https"

local https = require("ssl.https")
...

-- o resto continua a mesma coisa...

Abs,
Pablo


De: Guilherme Lopes <guilher...@gmail.com>
Para: Lua BR <lua...@googlegroups.com>
Enviadas: Terça-feira, 26 de Janeiro de 2010 12:00:52
Assunto: [lua-br] HTTPS via LuaSec


Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes

Guilherme Lopes

unread,
Jan 26, 2010, 12:30:42 PM1/26/10
to lua-br
No código que usa https a saída é:

nil
wrong version number

No que usa socket a saída é:

lua: sslGoogle.lua:17: wrong version number
stack traceback:
        [C]: in function 'assert'
        sslGoogle.lua:17: in main chunk
        [C]: ?

Abraços,
Guilherme Lopes

2010/1/26 Pablo Musa <pabl...@yahoo.com.br>

Pablo Musa

unread,
Jan 26, 2010, 1:14:25 PM1/26/10
to lua...@googlegroups.com
Oi Guilherme,

eu testei aqui de várias maneiras e todas elas estão OK, inclusive com a url fornecida por você.
Além disso, ela funciona com todos os 3 protocolos que você citou (sslv3, sslv23 e tlsv1).

Alguns dos sites que eu uso para teste são esses e também estão OK:
"https://internetbanking.caixa.gov.br/SIIBC/index.processa",
"https://pagseguro.uol.com.br/Default.aspx",
"https://consulta.tesouro.fazenda.gov.br/gru/gru_simples.asp"

O arquivo que criei com o seu conteúdo que executou corretamente ficou:

require"https"
local https = ssl.https

-- uma das opções usando tudo default
local url = "https://www.google.com/accounts/ServiceLogin"
print(https.request(url))

print(https.request{
  --url = "http://www.google.com.br/",

  protocol = "tlsv1",

  options = "all",
  verify = "none",
})

Note que quando troco a url pela comentada (google puro e simples) recebo o mesmo erro que você (wrong version number).
Nesse caso, o serviço deles não possui https e não se comporta da forma que a biblioteca espera.

Realmente não sei o que possa ser...
Tenta atualizar as versões da luasocket, da luasec e da openssl (se é a que você utiliza).

Qualquer dúvida é só falar.

Abs,
Pablo


De: Guilherme Lopes <guilher...@gmail.com>
Para: lua-br <lua...@googlegroups.com>
Enviadas: Terça-feira, 26 de Janeiro de 2010 15:30:42
Assunto: Re: [lua-br] HTTPS via LuaSec

Bruno Silvestre

unread,
Jan 26, 2010, 4:18:27 PM1/26/10
to lua...@googlegroups.com
Olá,

logo que recebi a mensagem, executei o seu código e estava dando erro
mesmo. Infelizmente, não tive tempo de investigar.

Aparentemente tudo voltou a funcionar agora e não sei o que houve
porque não há como testar.

abs
--
bruno

2010/1/26 Guilherme Lopes <guilher...@gmail.com>:

Guilherme Lopes

unread,
Jan 28, 2010, 7:30:58 AM1/28/10
to lua-br
Bruno e Pablo,

Muito obrigado pelas respostas.

Depois de muito tentar também consegui fazer funcionar. O problema era na verdade a rede do local onde trabalho =/
Conectando via celular, rede 3g, funcionou corretamente.


Abraços,
Guilherme Lopes

2010/1/26 Bruno Silvestre <bruno.s...@gmail.com>
Reply all
Reply to author
Forward
0 new messages