Open b-mandelbrot opened 6 years ago
Olá @b-mandelbrot
Atualmente também estamos usando Let's Encrypt no serviço da UFSCar. Configuramos da seguinte forma:
/etc/letsencrypt/renewal/cnpqwsproxy.ufscar.br.conf
:
# renew_before_expiry = 30 days
version = 0.10.2
archive_dir = /etc/letsencrypt/archive/cnpqwsproxy.ufscar.br
cert = /etc/letsencrypt/live/cnpqwsproxy.ufscar.br/cert.pem
privkey = /etc/letsencrypt/live/cnpqwsproxy.ufscar.br/privkey.pem
chain = /etc/letsencrypt/live/cnpqwsproxy.ufscar.br/chain.pem
fullchain = /etc/letsencrypt/live/cnpqwsproxy.ufscar.br/fullchain.pem
# Options used in the renewal process
[renewalparams]
authenticator = webroot
installer = None
account = hash_da_nossa_conta
post_hook = /etc/letsencrypt/hook.sh
[[webroot_map]]
cnpqwsproxy.ufscar.br = /var/www
Note a configuração post_hook
acima.
/etc/letsencrypt/hook.sh
:
#!/bin/bash -e
cp /etc/letsencrypt/live/cnpqwsproxy.ufscar.br/fullchain.pem /var/cnpqwsproxy/conf/tls/private/cnpqwsproxy.crt
cp /etc/letsencrypt/live/cnpqwsproxy.ufscar.br/privkey.pem /var/cnpqwsproxy/conf/tls/private/cnpqwsproxy.key
chown cnpqwsproxy:cnpqwsproxy /var/cnpqwsproxy/conf/tls/private/cnpqwsproxy.crt /var/cnpqwsproxy/conf/tls/private/cnpqwsproxy.key
service nginx reload
/bin/su -s /bin/sh - cnpqwsproxy /var/cnpqwsproxy/app reload
Note que estamos copiando o certificado e a chave de dentro do diretório gerenciado pelo letsencrypt para o diretório do cnpqwsproxy. Uma alternativa seria fazer links simbólicos, daí o script acima precisaria apenas recarregar os serviços. No entanto, tivemos um problema ao tentar dessa forma, agora não me lembro qual.
Note também que temos tanto o nginx comum (do repositório da distribuição) como o openresty instalados. Isso é necessário porque o letsencrypt faz a renovação usando as portas 80 e 443, nas quais é o nginx comum quem está escutando. Uma alternativa para não precisar do nginx comum seria reconfigurar o cnpqwsproxy para escutar nas portas 80/443 e mapear um webroot para renovar diretamente por ele.
Copiei os arquivos e aparentemente ficou ok. Cadastrei o IP de acesso externo... porém estou recebendo um erro 500 do servidor.
Já o acesso localhost, está retornando um 403.
2018/07/13 12:52:40 [error] 154618#154618: *3 lua entry thread aborted: runtime error: /home/bruno/cnpqwsproxy/scripts/cnpqws_cache_key.lua:5: loop or previous error loading module 'expat'
stack traceback:
coroutine 0:
[C]: in function 'require'
/home/bsb/cnpqwsproxy/scripts/cnpqws_cache_key.lua:5: in function </home/bsb/cnpqwsproxy/scripts/cnpqws_cache_key.lua:1>,
Chegou a passar por algo parecido?
Obrigado!
A linha 5 é a linha que carrega o expat: https://github.com/nitmateriais/cnpqwsproxy/blob/master/scripts/cnpqws_cache_key.lua#L5
Se está dando erro bem nessa linha, provavelmente você não está com a biblioteca expat corretamente instalada no diretório lualibs
.
Você chegou a executar o comando git submodule init && git submodule update
para baixar os submódulos? O expat é baixado por esse mecanismo.
Bom o problema do 403 era o acesso não autorizado. Então adicionei o IP a lista cnpqws_allowed_clients.conf
e tudo ok. Porém o error 500
ainda persiste.
Estou usando o CentOS 7
. Rodei os comandos conforme README
. Porém continuo recebendo o mesmo erro. Veja o diretório lualibs
:
[bsb@bsb lualibs]$ ls -la
total 4
drwxrwxr-x. 3 bsb bsb 63 Jul 15 13:01 .
drwxrwxr-x. 15 bsb bsb 4096 Jul 15 13:15 ..
lrwxrwxrwx. 1 bsb bsb 17 Jul 15 13:01 expat -> ../3rdparty/expat
lrwxrwxrwx. 1 bsb bsb 16 Jul 15 13:01 glue -> ../3rdparty/glue
drwxrwxr-x. 2 bsb bsb 19 Jul 15 13:01 lua-resty-http
lrwxrwxrwx. 1 bsb bsb 14 Jul 15 13:01 pp -> ../3rdparty/pp
@thotypous Obrigado pela ajuda. Eu uso o CentOS 7
. E no meu caso foi necessário instalar no sistema as dependências:
sudo yum install expat-devel
Agora está tudo funcionando corretamente. Obrigado!
@b-mandelbrot Que bom que deu certo! Não pensamos em colocar a instalação do expat em si (além do wrapper para Lua) nas instruções pois alguma das outras dependências já estava puxando o expat nos sistemas Debian que testamos. Obrigado pela contribuição, vamos editar as instruções para contemplar isso.
Só por curiosidade, você é de qual instituição? FGV?
@thotypous sim FGV. Muito obrigado pela atenção.
Olá,
estou tentando instalar o proxy, porém sem sucesso. Gostaria de uma ajuda para entender os seguintes passos:
Estamos usando o certbot-auto (Let's Encrypt) e não estou conseguindo fazer funcionar. Já fiz o deploy das chaves para o nginx, o domínio já está reconhecendo o ssl, porém ao rodar o suds estou recebendo um erro dizendo que o certificado é inválido.
OpenRestry está instalado!
Alguma dica?