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.

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 JBOSS_HOME/server/default/conf/server.keystore -storepass medical -validity 365

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

As operadoras devem usar o nome da máquina hospedeira (host) no campo CN (Common Name), é o mesmo nome utilizado na configuração do parâmetro -b, definido na configuração de acesso externo.

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

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

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 c:/totvs/jboss-4.2.3.GA/server/default/conf/certificate.cer -keystore c:/totvs/jboss-4.2.3.GA/server/default/conf/keystore.keystore -storepass medical

A seguir, os detalhes de cada propriedade:

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

Importação dos Certificados

Cada cliente autorizado a receber ou enviar mensagens "Web Service" deve fornecer seu arquivo de certificado pra ser adicionado à lista de clientes confiáveis.

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 “c:/totvs/jboss-4.2.3.GA/server/default/conf/truststore.truststore” 
-storepass medical -noprompt -trustcacerts

Os valores grifados devem ser substituídos, e para palavras-chave iguais devem ser os mesmos usados anteriormente (§ 3.5.1, § 3.5.2):

 

 

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 ”C:/totvs/jboss-4.2.3.GA/server/default/conf”.



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

A seguir são mostrados os passos para habilitar, ou desabilitar, o uso do certificado digital. Por padrão algumas configurações estão comentadas para os clientes que utilizarem somente os módulos "TISS" e "SIB" sem o certificado digital. 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.

7.6.1 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

 

<!-- ... -->

 

<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.

Na estrutura “/server/default/deploy”, a partir do diretório de instalação, verificar, comentar 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.trustStore=<caminho-truststore> -->

    </attribute>

    <!-- ... -->

  </mbean>

  <!-- ... -->

</server>

Na estrutura “server/default/deploy/jboss-web-deployer”, a partir do diretório de instalação, verificar, comentar o arquivo “server.xml” para o serviço “jboss.web”, 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>

Na estrutura “/server/default/deploy/jbossws.sar/jbossws.beans/META-INF”, a partir do diretório de instalação, verificar, comentar o arquivo “jboss-beans.xml”, referente a seguranças de portas, conforme mostrado abaixo:

<deployment ... >

  <!-- ... -->

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

    <!--

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

    -->

  </bean>

  <!-- ... -->

<deployment>