Como posso obter o LWP para validar certificados de servidor SSL?
Como posso obter LWP para verificar se o certificado do servidor ao qual estou me conectando é assinado por uma autoridade confiável e emitido para o host correto? Até onde eu sei, ele nem verifica se o certificado afirma ser o nome do host ao qual estou me conectando. Isso parece ser um grande furo de segurança (especialmente com as recentes vulnerabilidades de DNS
Atualizar Acontece que eu realmente queria eraHTTPS_CA_DIR
, porque não tenho um ca-bundle.crt. MasHTTPS_CA_DIR=/usr/share/ca-certificates/
fez o truque. Estou marcando a resposta como aceita de qualquer maneira, porque estava perto o suficient
Update 2: Acontece queHTTPS_CA_DIR
eHTTPS_CA_FILE
se aplica apenas se você estiver usando o Net :: SSL como a biblioteca SSL subjacente. Mas o LWP também trabalha com o IO :: Socket :: SSL, que ignorará essas variáveis de ambiente e conversará alegremente com qualquer servidor, independentemente do certificado que ele apresentar. Existe uma solução mais geral?
Update 3: Infelizmente, a solução ainda não está completa. Nem Net :: SSL nem IO :: Socket :: SSL estão verificando o nome do host em relação ao certificado. Isso significa que alguém pode obter um certificado legítimo para algum domínio e, em seguida, representar qualquer outro domínio sem a LWP reclama
Update 4: LWP 6.00 finalmente resolve o problema. Vejominha respost para detalhes