Oracle REST Data Services (ORDS) e Oracle Application Express (APEX) são duas tecnologias poderosas que trabalham em conjunto para fornecer uma experiência de desenvolvimento web robusta e eficiente. ORDS permite que você publique serviços Web RESTful para o seu banco de dados Oracle, facilitando a exposição de tabelas, visualizações e até procedimentos armazenados como serviços web, sem a necessidade de escrever ou manter código adicional. APEX é uma ferramenta de desenvolvimento que permite construir e entregar rapidamente aplicações web a partir do seu banco de dados Oracle. Ele utiliza ORDS para disponibilizar essas aplicações via HTTP(S). Juntos, ORDS e APEX oferecem uma solução completa para o desenvolvimento de aplicações web, com a facilidade de uso e a flexibilidade necessárias para atender às demandas de projetos de todos os tamanhos.
Neste post apresento o processo de instalação e configuração do ORDS com SSL para disponibilizar aplicações Apex. Neste post não apresento o processo de instalação do apex e criação de aplicações. Assume-se que as aplicações Apex já estão prontas.
Instalação
yum-config-manager --add-repo=http://yum.oracle.com/repo/OracleLinux/OL7/oracle/software/x86_64
yum info ords
yum install ords -y
yum-config-manager --add-repo=http://yum.oracle.com/repo/OracleLinux/OL7/oracle/software/x86_64
yum info ords
yum install ords -y
Configuração do ORDS com SSL
Gerar chave e certificado (necessário apenas ser for configurar ssl
)
Referências:
- https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=424784249768103&id=2156766.1&_afrWindowMode=0&_adf.ctrl-state=fcl0g0rpm_94
- https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=424786512017745&id=2885996.1&_afrWindowMode=0&_adf.ctrl-state=fcl0g0rpm_143
cd /etc/ords/config
openssl req -new -newkey rsa:2048 -nodes -keyout localdomain.com.key -out localdomain.com.csr
## OBS: Importante informar o hostname do servidor que vai usar o certificado e ser acessado: apex-prod.localdomain.com
## Converter a private key gerando a .der
openssl pkcs8 -topk8 -inform PEM -outform DER -in localdomain.com.key -out localdomain.com.der -nocrypt
## Gerar o certificado
openssl x509 -req -days 365 -in localdomain.com.csr -signkey localdomain.com.key -out localdomain.com.crt
Especificar o tipo de conexão com o banco de dados
ords --config /etc/ords/config install
Enter a number to select the database connection type to use
[1] Basic (host name, port, service name)
[2] TNS (TNS alias, TNS directory)
[3] Custom database URL
Choose [1]: 1
ords --config /etc/ords/config install
Enter a number to select the database connection type to use
[1] Basic (host name, port, service name)
[2] TNS (TNS alias, TNS directory)
[3] Custom database URL
Choose [1]: 1
Informar os dados de conexão com o banco de dados
Enter the database host name [localhost]: cluster-scan-prd
Enter the database listen port [1521]:
Enter the database service name [orcl]: apexpdb
Provide database user name with administrator privileges.
Enter the administrator username: sys
Enter the database password for SYS AS SYSDBA:
Enter the database host name [localhost]: cluster-scan-prd
Enter the database listen port [1521]:
Enter the database service name [orcl]: apexpdb
Provide database user name with administrator privileges.
Enter the administrator username: sys
Enter the database password for SYS AS SYSDBA:
Definir o protocolo de conexão - https
- Opção: 6
- Opção: 2
- Porta: 8443
- Path do certificado .crt
- Path do certificado .der
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=cluster-scan-prd PORT=1521 SERVICE_NAME=apexpdb
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] Additional Feature: Database Actions
[5] Configure and start ORDS in Standalone Mode: Yes
[6] Protocol: HTTP
[7] HTTP Port: 8080
[8] APEX static resources location:
[A] Accept and Continue - Update configuration
[Q] Quit - Do not proceed. No changes
Choose [A]: 6
Enter a number to select the protocol
[1] HTTP
[2] HTTPS
Choose [1]: 2
Enter the HTTPS port [8443]:
Enter a number to select the certificate type
[1] Use self-signed certificate (generates automatically)
[2] Use my SSL certificate (requires SSL certificate and SSL certificate private key)
Choose [1]: 2
Enter the path for the SSL Certificate: /etc/ords/config/localdomain.com.crt
Enter the path for the SSL Certificates private key: /etc/ords/config/localdomain.com.der
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=cluster-scan-prd PORT=1521 SERVICE_NAME=apexpdb
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] Additional Feature: Database Actions
[5] Configure and start ORDS in Standalone Mode: Yes
[6] Protocol: HTTP
[7] HTTP Port: 8080
[8] APEX static resources location:
[A] Accept and Continue - Update configuration
[Q] Quit - Do not proceed. No changes
Choose [A]: 6
Enter a number to select the protocol
[1] HTTP
[2] HTTPS
Choose [1]: 2
Enter the HTTPS port [8443]:
Enter a number to select the certificate type
[1] Use self-signed certificate (generates automatically)
[2] Use my SSL certificate (requires SSL certificate and SSL certificate private key)
Choose [1]: 2
Enter the path for the SSL Certificate: /etc/ords/config/localdomain.com.crt
Enter the path for the SSL Certificates private key: /etc/ords/config/localdomain.com.der
Definir o caminho dos recursos estáticos (pasta de imagens)
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=cluster-scan-prd PORT=1521 SERVICE_NAME=apexpdb
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] Additional Feature: Database Actions
[5] Configure and start ORDS in Standalone Mode: Yes
[6] Protocol: HTTPS
[7] HTTPS Port: 8443
[8] Certificate Type: Use my SSL Certificate
[9] Path for the SSL Certificate: /etc/ords/config/localdomain.com.crt
[10] Path for the SSL Certificate private key: /etc/ords/config/localdomain.com.der
[11] APEX static resources location:
[A] Accept and Continue - Update configuration
[Q] Quit - Do not proceed. No changes
Choose [A]: 11
Enter the APEX static resources location: /etc/ords/config/images
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=cluster-scan-prd PORT=1521 SERVICE_NAME=apexpdb
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] Additional Feature: Database Actions
[5] Configure and start ORDS in Standalone Mode: Yes
[6] Protocol: HTTPS
[7] HTTPS Port: 8443
[8] Certificate Type: Use my SSL Certificate
[9] Path for the SSL Certificate: /etc/ords/config/localdomain.com.crt
[10] Path for the SSL Certificate private key: /etc/ords/config/localdomain.com.der
[11] APEX static resources location:
[A] Accept and Continue - Update configuration
[Q] Quit - Do not proceed. No changes
Choose [A]: 11
Enter the APEX static resources location: /etc/ords/config/images
Configurando o startup automático do ORDS
Para configurar o startup automático é necessário criar o arquivo vi /etc/init.d/apex
e inserir o conteúdo abaixo:
#!/bin/bash
# chkconfig: 345 99 10
# Description: auto start apex
#
case "$1" in
'start')
su - oracle -c "/usr/local/bin/ords --config /etc/ords/config serve &";;
'stop')
pkill -f "/opt/oracle/ords/ords.war --config /etc/ords/config serve";;
esac
Depois do arquivo criado, é necessário ajustar as permissões do arquivo
cd /etc/init.d
chown root.root apex
chmod 777 apex
Caso esteja usando um Oracle Linux 6
chkconfig --add apex
chkconfig --level 2345 apex on
chkconfig --level 016 apex off
service apex start
service apex stop
Caso esteja usando Oracle Linux 7
systemctl enable apex
systemctl start apex
systemctl stop apex
Para validar se os serviços subiram podemos verificar se:
- A porta 8443 está up
netstat -antp | grep 8443
- O servido do ORDS está em execução
ps -ef | grep ords
0 Comentários