Olá prezados
Estou tentando implementar HTTPS em um de nossos repositórios de teste com DSpace 7.6.1 (livroaberto.ufpa.br), porém estou tendo alguns problemas que infelizmente não estou conseguindo superar.
Estou conseguindo fazer com que o site esteja acessível pelo navegador, porém está com erro 500.
Primeiramente, segui o tutorial da documentação do DSpace. Abaixo irei listar como estão meus arquivos neste momento:
config.prod.yml
ui:
ssl: false
host: localhost
port: 4000
nameSpace: /
.
rest:
ssl: true
host: livroaberto.ufpa.br
port: 443
nameSpace: /server
server.xml
<Connector port="8080"
minSpareThreads="25"
enableLookups="false"
redirectPort="443"
connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"/>
<Connector tomcatAuthentication="false" packetSize="65536" protocol="AJP/1.3"
address="127.0.0.1, ::1"
port="8009"
secret="your-secret"
allowedRequestAttributesPattern=".*"
redirectPort="443" />
Aqui já entra a primeira dúvida: vejo na documentação que a porta 8080 deve apontar para a 8443 no tomcat. Porém a porta 8443 no sistema não aponta para nada. Somente após eu mudar para 443 foi que consegui visualizar o frontend em meu navegador , apesar do erro 500.
Aquivo “livroaberto.conf” (Apache)
<VirtualHost *:80>
ServerName livroaberto.ufpa.br
#automatic redirection from http to https
Redirect / https://livroaberto.ufpa.br
</VirtualHost>
<VirtualHost *:443>
ServerName livroaberto.ufpa.br
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/livroaberto.ufpa.br.error.log
CustomLog ${APACHE_LOG_DIR}/livroaberto.ufpa.br.access.log combined
ProxyRequests on
SSLEngine on
SSLProxyEngine on
#check and insert here the correct paths to your domain certs:
#If you used Certbot to install certs, the certs paths are shown here:
SSLCertificateFile /etc/tomcat9/certificado_SSL/new-livro_crt.crt
SSLCertificateKeyFile /etc/tomcat9/certificado_SSL/livroaberto.key
SSLCertificateChainFile /etc/tomcat9/certificado_SSL/intermediate.pem
SSLCompression off
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA>
SSLHonorCipherOrder off
SSLSessionTickets off
ProxyPreserveHost on
RequestHeader set X-Forwarded-Proto https
<Proxy *>
AddDefaultCharset Off
Require all granted
</Proxy>
# PROXY for backend. Keep only localhost here! not insert your domain name!
ProxyPass /server http://localhost:8080/server
ProxyPassReverse /server http://localhost:8080/server
ProxyPass /server/ ajp://localhost:8009/server secret=
# AJP Directives
ProxyIOBufferSize 65536
# PROXY for frontend. Keep only localhost here! not insert your domain name!
ProxyPass / http://localhost:4000/
ProxyPassReverse / http://localhost:4000/
</VirtualHost>
Conforme não fui obtendo sucesso em minha configuração, eu utilizei outros tutoriais, por isso que tá uma mistura rs
As chaves SSL são repassadas pela unidade de TI da Universidade.
Arquivo local.cfg
dspace.server.url = https://livroaberto.ufpa.br/server
dspace.ui.url = https://livroaberto.ufpa.br
Aí entra uma outra dúvida: os arquivos local.cfg e dspace.cfg estão presentes tanto em /dspace/config quanto em /home/dspace/DSpace-dspace-7.6.1. Qual é o que vale?
Fazendo o yarn test:rest, aparentemente tudo ok
dspace@livroaberto:~/dspace-angular-dspace-7.6.1$ yarn test:rest
yarn run v1.22.21
$ ts-node --project ./tsconfig.ts-node.json scripts/test-rest.ts
Building production app config
Overriding app config with /home/dspace/dspace-angular-dspace-7.6.1/config/config.yml
Overriding app config with /home/dspace/dspace-angular-dspace-7.6.1/config/config.prod.yml
...Testing connection to REST API at https://livroaberto.ufpa.br/server/api...
RESPONSE: 200
Checking JSON returned for validity...
"dspaceVersion" = DSpace 7.6.1
"dspaceUI" = https://livroaberto.ufpa.br
"dspaceServer" = https://livroaberto.ufpa.br/server
"dspaceServer" property matches UI's "rest" config? true
Does "/api" endpoint have HAL links ("_links" section)? true
Done in 1.92s.
Quando tento acessar a página inicial do repositório, recebo um erro de proxy:
E a única página que me exibe algo da interface é a página de erro 500:
Estes são os logs do pm2:
Tenho ajustado o redirecionamento no tomcat de 8080 para 8443 e para 443, porém tudo dá no mesmo.
Já revi tudo o que realizei, porém nada adiantou até o momento.
Ah sim, o Solr e o HAL Browser são acessível localmente, e até mesmo de fora da máquina onde está o sistema (acredito que isto não deveria ocorrer, certo?)
Sei que são muitos problemas e situações, mas quem puder me dar algum tipo de luz, eu ficaria muito grato. Já estou a alguns dias vendo e revendo configurações, fazendo uma série de tentativas, mas tudo sem sucesso. O maior avanço que tive foi conseguir uma resposta 200 no yarn test:rest.
Att.