Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Certificados Digitais

A seguir são apresentados os passos para criação e distribuição do Certificado Digital de segurança para os serviços do Foundation Saúde. Será usada a ferramenta Keytool, distribuída junto com a instalação Java JDK.

Observação: A criação do certificado digital deve ser feita apenas para o uso dos serviços TISS. Os serviços do PTU devem utilizar o certificado fornecido pela Unimed do Brasil.

Âncora
keystore
keystore
Contenedor de Certificados (keystore)

A keystore é um repositório de certificados. Na keystore configurada no Foundation Saúde, é possível instalar todos os certificados necessários para o funcionamento dos serviços disponibilizados pelo Foundation Saúde, como PTU Online, TISS e GPU.

Para criar o certificado, utilize o keytool e digite a seguinte linha de comando (cmd):

keytool -genkeypair -alias keystore -dname distinguished-name -keypass medical -keystore dir instalação do JBoss/jboss4.2.3.GA JBOSS_HOME/server/default/conf/server.keystore -storepass medical -validity 365

Os A seguir, a descrição das propriedades, onde os valores sublinhados devem ser substituidossubstituídos:

As operadoras devem usar o nome da máquina hospedeira (host) no campo CN (Common Name), é o mesmo host nome utilizado na configuração do parâmetro “-b” para a publicação do sistema para acessos externos conforme o capítulo 5.1.-b, definido na configuração de acesso externo.

Segue abaixo um exemplo: 
CN = foundation foundation.dominio_operadora.com.br br 
OU = Totvs Saúde 
O = Totvs 
L = Joinville 
S = SC 
C = BR 

Estes atributos formam a o seguinte "string" texto para preenchimento do valor: “CN=foundation.dominio_operadora.com.br, OU=Totvs Saude,O=Totvs, L=Joinville, ST=SC, C=BR”. 
NotaAtenção: Lembre-se de usar aspas na linha de comando para strings textos com espaços.

    • -keypass: Senha para a chave do certificado digital. O valor padrão é medical.
    • -keystore: Caminho ou diretório onde serão criados o certificado, o arquivo contenedor de certificados, e o arquivo contenedor dos certicados válidos de clientes. O valor padrão é “c:\totvs\jboss-4.2.3.GA”o JBOSS_HOME.
    • -storepass: Senha para o arquivo contenedor de certificados. O valor padrão é medical.
    • -validity: Número de dias antes que o certificado se expire. O valor padrão é 365(1 ano);

Atenção: Verifique se o arquivo

...

server.keystore

...

 foi criado no diretório escolhido (-keystore).

...

Exemplos de criação do keystore server e client:

>keytool -genkeypair -alias keystore -dname "CN=LOCALHOST, OU=Totvs Saude,O=Totvs, L=Joinville, ST=SC, C=BR" -keypass medical -keystore "client.keystore" -storepass medical -validity 365

>keytool -genkeypair -alias keystore -dname "CN=LOCALHOST, OU=Totvs Saude,O=Totvs, L=Joinville, ST=SC, C=BR" -keypass medical -keystore "server.keystore" -storepass medical -validity 365

...

Criação do Certificado

Para extrair o certificado

...

da keystore digite a seguinte linha de comando (cmd) :

keytool -exportcert -alias keystore -file

...

JBOSS_HOME/server/default/conf/certificate.

...

cer -keystore

...

JBOSS_HOME/server/default/conf/keystore.keystore -storepass medical

...

A seguir, os detalhes de cada propriedade:

...

    -
    • alias: Crie um alias para seu arquivo de chaves, esse nome será usado internamente. Valor padrão é “keystore”.
  • -
    • file: Caminho ou diretório onde serão criados o certificado, o arquivo contenedor de certificados, e o arquivo contenedor dos certicados válidos de clientes. O valor padrão é “
  • c:/totvs/jboss-4.2.3.GA/
    • JBOSS_HOME/server/default/conf/”.
  • -
    • storepass: Senha para o arquivo contenedor de certificados. O valor padrão é “medical”.

 

Atenção: Verifique se o arquivo “certificate.cer” foi criado no diretório escolhido (-file).

...

Exemplo de criação dos certificados:

>keytool -exportcert -alias keystore -file "c:/totvs/jboss-4.2.3.GA/server/default/conf/client.cer" -keystore "client.keystore" -storepass medical

>keytool -exportcert -alias keystore -file " c:/totvs/jboss-4.2.3.GA/server/default/conf /server.cer" -keystore "server.keystore" -storepass medical

...

Âncora
truststore
truststore
Importação

...

dos Certificados de Clientes

Cada cliente autorizado a receber ou enviar mensagens

...

através dos Web Services, deve fornecer seu arquivo de certificado pra ser adicionado à lista de clientes confiáveis (truststore).

Também o cliente precisa receber o certificado do provedor(host) dos serviços

...

Web Service

...

para adicioná-lo a sua lista de confiabilidade.

Tendo recebido o arquivo do cliente, executar a seguinte linha de comando (cmd): 

keytool -importcert -alias client_truststore -file

...

certificado-cliente

...

-keypass

...

senha-

...

cliente-keystore

...

“JBOSS_HOME/server/default/conf/truststore.truststore” 

...

-storepass medical -noprompt -trustcacerts

Os valores

...

sublinhados devem ser substituídos, e para palavras-chave iguais devem ser os mesmos usados

...

na criação do certificado e keystore. A seguir os detalhes das propriedades:

 

    -
    • alias: Crie um alias para seu arquivo de armazenamento de certificados de clientes válidos, esse nome será usado internamente. O valor padrão é “client_truststore”.
  • client
    • certificado-
  • certificate
    • clienteCaminho completo onde se encontra o arquivo certificado do cliente, este certificado será adicionado à lista de confiáveis;
    • senha-cliente: Senha do arquivo de certificado do cliente.
  • -
    • keystore: Caminho ou diretório onde serão criados o certificado, o arquivo contenedor de certificados, e o arquivo contenedor dos certicados válidos de clientes. Valor padrão é “c:/totvs/jboss-4.2.3.GA/server/default/conf”.
  • -
    • storepass: Senha para o arquivo contenedor dos certificados válidos de clientes. Valor padrão é “medical”.

...

Atenção: Verifique se o arquivo ”truststore.truststore” foi criado no diretório escolhido (-storepass).

...

Exemplo de importação dos certificados:

  • Importando certificado do cliente no servidor

...

  • : >keytool -importcert -alias clientlocal -file "client.cer" -keypass medical -keystore "server.truststore" -storepass medical -noprompt –trustcacerts
  • Importando certificado do servidor no cliente

...

  • : >keytool -importcert -alias server -file "server.cer" -keypass medical -keystore "client.truststore" -storepass medical -noprompt –trustcacerts

O proximo passo é copiar os arquivos

...

server.

...

keystore e

...

server.

...

truststore, para o diretório

...

JBOSS_HOME/server/default/conf.

Âncora
certServer
certServer
Importação de Certificados de Servidores

Para consumir serviços protegidos numa conexão HTTPS, é necessário que o Foundation Saúde reconheça a autenticidade do servidor, do contrário ocorrerão erros de handshake, processo de reconhecimento entre as partes, como os seguintes:

    • No trusted certificate found;
    • Time out;

Essa configuração é realizada através da importação de algum certificado disponibilizado pelo servidor na lista de certificados confiáveis (truststore). Para realizar essa importação, deve-se executar a seguinte linha de comando (cmd):

keytool -import -trustcacerts -alias server_truststore -file “certificado-cliente" -keystore “JBOSS_HOME/server/default/conf/truststore.truststore” -storepass medical -noprompt

    • alias: Crie um alias para seu arquivo de armazenamento de certificados de clientes válidos, esse nome será usado internamente. O valor padrão é “client_truststore”.
    • certificado-cliente: Caminho completo onde se encontra o arquivo certificado do cliente, este certificado será adicionado à lista de confiáveis;
    • senha-cliente: Senha do arquivo de certificado do cliente.
    • keystore: Caminho ou diretório onde serão criados o certificado, o arquivo contenedor de certificados, e o arquivo contenedor dos certicados válidos de clientes. Valor padrão é “c:/totvs/jboss-4.2.3.GA/server/default/conf”.
    • storepass: Senha para o arquivo contenedor dos certificados válidos de clientes. Valor padrão é “medical”.

Exemplo de importação dos certificados:

  • Importando certificado do cliente no servidor: >keytool -import -truststore -alias clientlocal -file "client.cer" -keystore "server.truststore" -storepass medical -noprompt

Âncora
configSSL
configSSL
Configuração de Segurança no Servidor de Aplicações

A seguir são mostrados os passos para habilitar e desabilitar o uso do certificado digital

7.6 Configuração de Segurança no Servidor de Aplicações

...

. Por padrão algumas configurações estão comentadas para os

...

sistemas não utilizam o certificado digital para TISS e SIB. Caso o cliente utilize os módulos

...

SIB

...

e

...

TISS

...

sem certificado, será necessário fazer as configurações da

...

seção 8.6.2.

...

Habilitar Certificado Digital - PTU/Tiss/SIB

Na estrutura ”C:/totvs/jboss-4.2.3.GA/server/default/conf”, a partir do diretório de instalação do "JBOSS", é preciso verificar a configuração de dois arquivos: 

Observação: Para configurar o certificado para o módulo do "PTU", deve copiar os arquivos  enviados pela Unimed do Brasil para o diretório “c:\totvs\jboss-4.2.3.GA\server\default\conf”. O nome do arquivo que vai ser configurado é igual ao domínio que é informado no parâmetro “-b”, no arquivo de inicialização do "JBOOS", conforme a seção 6 - Inicialização e Acesso.Ex.: foundation.dominio_operadora.com.br.javaks

...

Para configurar o certificado para o PTU, deve-se gravar os arquivos enviados pela Unimed do Brasil no diretório JBOSS_HOME\server\default\conf. O nome da keystore deve ser igual ao domínio da aplicação, que é informado no parâmetro -b, do arquivo de inicialização do JBoss, conforme definido na configuração de acesso externo. Ex.: foundation.dominio_operadora.com.br.javaks ou foundation.dominio_operadora.com.br.jks.

Na diretório JBOSS_HOME/server/default/conf, é preciso verificar a configuração de dos arquivos jboss-service.xmllogin-config.xml.

No arquivo jboss-service.xml deve-se incluir ou atualizar a tag “mbean” de segurança, conforme

...

ilustrado abaixo. Para o módulo

...

PTU

...

, o valor “keystore.keystore” e o valor “truststore. truststore”, na linha em negrito abaixo, deve ser

...

substituído pelo arquivo “*.javaks” enviado pela Unimed do Brasil e as senhas “medical” dos atributos “KeyStorePass” e “TrustStorePass” pela senha fornecida pela Unimed do Brasil.

...



<!-- ... -->

 

<mbean code="org.jboss.security.plugins.JaasSecurityDomain"

    name="jboss.web:service=SecurityDomain">

  <constructor>

    <arg type="java.lang.String" value="JBossWS-SSL"/>

  </constructor>

  <attribute name="KeyStoreURL">

      ${jboss.server.home.dir}/conf/keystore.keystore

  </attribute>

  <attribute name="KeyStorePass">medical</attribute>

  <attribute name="TrustStoreURL">

    ${jboss.server.home.dir}/conf/truststore.truststore

</attribute>

  <attribute name="TrustStorePass">medical</attribute>

  <depends>jboss.security:service=JaasSecurityManager</depends>

</mbean>

 

<!-- ... -->

 

Observação: Para a DISTRO com certificado, este arquivo já se encontra configurado.

...

No arquivo login-config.

...

xml deve-se incluir ou atualizar a tag “application-police”, conforme mostrado abaixo:

<!-- ... -->

...

<application-policy name="JBossWS-Secure">

  <authentication>

    <login-module code="org.jboss.security.auth.spi.BaseCertLoginModule"

        flag="required">

      <module-option name="password-stacking">useFirstPass</module-option>

      <module-option name="securityDomain">java:/jaas/JBossWS-SSL</module-option>

      <module-option name="verifier">

...

org.jboss.security.auth.certs.AnyCertVerifier

      </module-option>

    </login-module>

  </authentication>

</application-policy>

<!-- ... -->

...

No diretório JBOSS_HOME/server/default/deploy

...

,

...

atualizar o arquivo

...

properties-service.

...

xml, conforme mostrado abaixo:

<server>

<!-- ... -->

  <mbean code="org.jboss.varia.property.SystemPropertiesService"

      name="jboss:type=Service,name=SystemProperties">

    <!-- ... -->

    <attribute name="Properties">

...

javax.net.ssl.keyStore=<caminho-keystore

...

>

...

javax.net.ssl.keyStorePassword=<senha-keystore>

...

...

javax.net.ssl.trustStore=<caminho-truststore>

...

...

javax.net.ssl.trustStorePassword=<senha-truststore>

...

    </attribute>

    <!-- ... -->

  </mbean>

  <!-- ... -->

</server>

Segue abaixo mais detalhes referente a configuração acima:

    • javax.net.ssl.keyStore –
  • (*) –
    • Informe o caminho onde está
  • o seu arquivo "keystore", que foi criado em “§ 3.7.1. Criação do contenedor de certificados(keystore)”
    • o seu arquivo keystore, que foi criado anteriormente. Caso o arquivo esteja configurado para o
  • módulo do "
    • PTU
  • "
    • , este valor deve apontar para o arquivo “.javaks”
  • ,
    • enviado pela Unimed do Brasil.
  • (**) –
    • javax.net.ssl.keyStorePassword – Informe a senha do seu
  • "
    • keystore
  • "
    • . Caso o arquivo esteja configurado para o
  • módulo do "
    • PTU
  • "
    • , este valor deve ser preenchido com a senha fornecida pela Unimed do Brasil.
  • (***) –
    • javax.net.ssl.trustStore – Informar o caminho onde está seu arquivo
  • "
    • truststore
  • ", que foi criado em “§ 3.5.3. Importação de Certificados”
    • , que foi criado anteriormente. Caso o arquivo esteja configurado para o
  • módulo do "
    • PTU
  • "
    • , este valor deve apontar para o arquivo “.javaks”, enviado pela Unimed do Brasil.
  • (****) –
    • javax.net.ssl.trustStorePassword – Informar a senha do seu arquivo
  • "
    • truststore
  • ", que foi criado em “§ 3.5.3. Importação de Certificados”
    • . Caso o arquivo esteja configurado para o
  • módulo do "
    • PTU
  • "
    • , este valor deve ser preenchido com a senha fornecida pela Unimed do
  • Brasil.

    Obs: Para a DISTRO com certificado, este arquivo já se encontra configurado.

    Na estrutura “C:/totvs/jboss-4.2.3.GA
    • Brasil.

No diretório JBOSS_HOME/server/default/deploy/jboss-web-deployer”,

...

configurar o arquivo

...

server.

...

xml o serviço

...

jboss.

...

web, conforme mostrado abaixo:

<Server>

  <!-- ... -->

  <Service name="jboss.web">

    <!-- ... -->

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

        maxThreads="150" scheme="https" secure="true"

        keystoreFile="C:/totvs/jboss-4.2.3.GA/server/conf/keystore.keystore"

            keystorePass="medical"

        clientAuth="want" sslProtocol="TLS"

        truststoreFile="C:/totvs/jboss-4.2.3.GA/server/conf/truststore.truststore"

            truststorePass="medical"/>

    <!-- ... -->

  </Service>

  <!-- ... -->

</Server>

Segue abaixo mais detalhes referente a configuração acima:

...

    • port
  • =”...”
    • : Número da porta para comunicação segura. Valor padrão é 443.
    • keystoreFile
  • =”...”
    • : Caminho ou diretório onde está o certificado, o arquivo contenedor de certificados, e o arquivo contenedor dos certificados válidos de clientes. Diretório padrão de certificado é o
  • “C:/totvs/jboss-4.2.3.GA
    • JBOSS_HOME/server/conf
    • . Caso o arquivo esteja  configurado para o
  • módulo do "
    • PTU
  • "
    • , deve apontar para o arquivo “.javaks”, fornecido pela Unimed do Brasil.
    • keystorePass
  • =”...”
    • : Senha para o arquivo contenedor de certificados. Caso o arquivo esteja configurado para o
  • módulo do "
    • PTU
  • "
    • , este valor deve ser preenchido com a senha fornecida pela Unimed do Brasil.
    • senha-truststore
  • =”...”
    • : Senha para o arquivo contenedor dos certificados válidos de clientes. Caso o arquivo esteja configurado para o
  • módulo do "
    • PTU
  • "
    • , este valor deverá ser preenchido com a senha fornecida pela Unimed do Brasil.
  • Observação: Para a DISTRO com certificado, este arquivo já se encontra configurado.

     

Nota: A necessidade de configurar portas ocorre principalmente quando há duas instâncias ativas do

...

JBoss. Outras situações referentes à infra-estrutura local podem

...

provocar essa necessidade e devem ser verificadas com o técnico responsável.

...

Desabilitar Certificado Digital - SIB/Tiss

...

No diretório JBOSS_HOME/server/default/

...

conf é preciso verificar a configuração de alguns arquivos:

...

No arquivo jboss-service.

...

xml: comentar a tag “mbean” de segurança, conforme mostrado abaixo:

 

<!-- ... -->

<!--

<mbean code="org.jboss.security.plugins.JaasSecurityDomain"

    name="jboss.web:service=SecurityDomain">

  <constructor>

    <arg type="java.lang.String" value="JBossWS-SSL"/>

  </constructor>

  <attribute name="KeyStoreURL">

${jboss.server.home.dir}/conf/keystore.keystore

  </attribute>

  <attribute name="KeyStorePass"><senha-keystore></attribute>

  <attribute name="TrustStoreURL">

${jboss.server.home.dir}/conf/truststore.truststore

  </attribute>

  <attribute name="TrustStorePass"><senha-truststore></attribute>

  <depends>jboss.security:service=JaasSecurityManager</depends>

</mbean>

-->

<!-- ... -->

 

...

No arquivo login-config.

...

xml, comentar a tag “application-police”, conforme mostrado abaixo:

 

 

<!-- ... -->

<!--

<application-policy name="JBossWS-Secure">

  <authentication>

    <login-module code="org.jboss.security.auth.spi.BaseCertLoginModule"

        flag="required">

      <module-option name="password-stacking">useFirstPass</module-option>

      <module-option name="securityDomain">java:/jaas/JBossWS-SSL</module-option>

      <module-option name="verifier">

org.jboss.security.auth.certs.AnyCertVerifier

      </module-option>          

    </login-module>

  </authentication>

</application-policy>

-->

<!-- ... -->

 

...

 

 

No diretório JBOSS_HOME/server/default/

...

deploy deve-se retirar ou comentar as propriedades abaixo do arquivo “properties-service.xml”

...

:

<server>

<!-- ... -->

  <mbean code="org.jboss.varia.property.SystemPropertiesService"

      name="jboss:type=Service,name=SystemProperties">

    <!-- ... -->

    <attribute name="Properties">

        <!-- javax.net.ssl.trustStore=<caminho-truststore> -->

    </attribute>

    <!-- ... -->

  </mbean>

  <!-- ... -->

</server>

...

 

No diretório JBOSS_HOME/server/default/deploy

...

/jboss-web-deployer, deve-se comentar ou retirar a tag Connector referente ao serviço "jboss.web" do arquivo “server.xml”

...

, conforme mostrado abaixo:

<Server>

  <!-- ... -->

  <Service name="jboss.web">

    <!--

    <Connector port="<porta-ssl>" protocol="HTTP/1.1" SSLEnabled="true"

        maxThreads="150" scheme="https" secure="true"

        keystoreFile="<caminho>/keystore.keystore"

            keystorePass="<senha-keystore>"

        clientAuth="want" sslProtocol="TLS"

        truststoreFile="<caminho>/truststore.truststore"

            truststorePass="<senha-truststore>"/>

-->

  </Service>

</Server>

...

No diretório  JBOSS_HOME/server/default/deploy/jbossws.sar/jbossws.beans/META-

...

INF, deve-se retirar ou comentar as propriedades abaixo do arquivo “jboss-beans.xml”

...

:

<deployment ... >

  <!-- ... -->

  <bean name="WSServerConfig" class="org.jboss.wsf.stack.jbws.NativeServerConfig">

    <!--

    <property name="webServiceSecurePort"><porta-ssl></property>

    -->

  </bean>

  <!-- ... -->

<deployment>