Para ter uma conexão de rede segura, crie uma chave para comunicações de rede segura e receba um certificado de uma autoridade de certificação (CA), designada como uma CA de confiança em seu servidor. Utilize o IKEYMAN para criar bancos de dados de chaves, pares de chaves pública-privada e pedidos de certificados. Se estiver agindo como sua própria CA, você poderá utilizar IKEYMAN para criar certificados auto-assinados. Se estiver agindo como sua própria CA em uma rede privada da Web, você deverá utilizar o utilitário de CA do servidor para gerar e emitir certificados assinados para clientes e servidores de sua rede privada.
Utilize o IKEYMAN para tarefas de configuração relacionadas à criação e gerenciamento de chaves pública-privada. O IKEYMAN não pode ser utilizado para opções de configuração que atualizam o arquivo de configuração do servidor, httpd.conf. Para opções que atualizam o arquivo de configuração do servidor, você deve utilizar o Servidor de Administração IBM.
Usuários do Linux para S/390: Utilize a Interface da Linha de Comandos do IKEYCMD para executar funções semelhantes ao IKEYMAN. Consulte Utilizando a Interface da Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD.
Este apêndice fornece informações detalhadas das tarefas que podem ser executadas com o Utilitário IBM Key Management (IKEYMAN). Estas informações não explicam como configurar opções de segurança que requerem atualizações no arquivo de configuração do servidor.
A GUI do IKEYMAN é baseada em Java e precisa de um JDK ou JRE para ser executada. Os níveis mínimos do JDK para o suporte do IKEYMAN são:
No Windows e Solaris, as bibliotecas do GSKit instaladas como parte do componente SSL incluem um JRE. Nenhuma configuração adicional de ambiente é necessária nestas plataformas. Para execução no AIX, HP ou Linux, ou para utilizar outro JDK no Solaris, defina o ambiente do sistema utilizando as seguintes diretrizes:
EXPORT JAVA_HOME=o nome completo do caminho do diretório pessoal de JDK
EXPORT PATH = <o nome completo do caminho do diretório pessoal do JDK> /jre/sh:<o nome completo do caminho do diretório pessoal do JDK>/sh:$PATH
EXPORT PATH=$IKEYMAN_HOME/bin:$PATH
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para executar o IKEYMAN no Linux para S/390, configure as variáveis de ambiente para utilizar a interface da linha de comandos do IKEYCMD, da seguinte forma:
EXPORT PATH=/opt/IBMJava/bin:$PATH
EXPORT CLASSPATH=/usr/local/ibm/gsk/classes/cfwk.zip:/usr/local/ibm/ gsk/classes/gsk4cls.jar:$CLASSPATH
Após a conclusão, IKEYCMD deve ser executado em qualquer diretório. Para executar um comando do IKEYCMD, utilize a seguinte sintaxe:
java com.ibm.gsk.ikeyman.ikeycmd <comando>Nota: Você pode substituir o JRE por Java, caso esteja utilizando um JRE ou JDK. Exemplo:
jre com.ibm.gsk.ikeyman.ikeycmd <comando>
Cada IKEYCMD (exceto criar banco de dados) requer que o banco de dados de chaves e senha para o banco de dados de chaves sejam especificados. Esta é uma ação necessária, porque o banco de dados é aberto com cada um dos comandos. Consulte Utilizando a Interface da Linha de Comandos do IKEYCMD, para obter informações mais detalhadas sobre o IKEYCMD.
A seção a seguir descreve como iniciar e utilizar a Interface de Linha de Comandos do IKEYMAN ou do IKEYCMD.
Para iniciar a interface gráfica com o usuário do IKEYMAN:
Nota: Se você estiver iniciando o IKEYMAN para criar um novo arquivo do banco de dados de chaves, o arquivo será armazenado no diretório em que você iniciar o IKEYMAN.
Para ter uma conexão de rede segura, crie uma chave para comunicações de rede segura e receba um certificado de uma autoridade de certificação (CA), designada como uma CA de confiança em seu servidor. Utilize o IKEYMAN (ou IKEYCMD no Linux para S/390) para criar o arquivo de banco de dados de chaves, um par de chaves pública-privada e um pedido de certificado. Depois de receber o certificado assinado pela CA, utilize IKEYMAN (ou IKEYCMD no Linux para S/390) para receber o certificado no banco de dados de chaves em que foi criado o pedido de certificado original.
Esta seção fornece uma referência rápida das tarefas IKEYMAN e IKEYCMD e de descrições de tarefas comuns.
As tarefas da interface do usuário do IKEYMAN e da interface de linha de comandos do IKEYCMD
estão resumidas na tabela a seguir.
Tarefa do IKEYMAN e do IKEYCMD | Para obter instruções, vá para: |
---|---|
Criar um novo banco de dados de chaves e especificar a senha do banco de dados |
|
Criar um novo par de chaves e pedido de certificado |
|
Criando um certificado auto-assinado |
|
Exportar uma chave para outro banco de dados ou arquivo PKCS12 |
|
Importar uma chave de outro banco de dados ou arquivo PKCS12 |
|
Listar autoridades de certificação (CAs) e pedidos de certificado |
|
Abrir um banco de dados de chaves |
|
Receber um certificado assinado pela CA em um banco de dados de chaves |
|
Mostrar a chave padrão em um banco de dados de chaves |
|
Armazenar o certificado raiz de uma CA |
|
Armazenar a senha em um arquivo stash |
|
Um banco de dados de chave é um arquivo que o servidor utiliza para armazenar um ou mais pares de chaves e certificados. Você pode utilizar um banco de dados de chaves para todos os seus pares de chaves e certificados, ou criar vários bancos de dados.
Para criar um novo banco de dados de chaves:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. É necessária uma senha para cada operação do banco de dados de chaves. Mesmo que um banco de dados do tipo sslight precisa de uma senha especificada, a senha pode ser uma cadeia NULA (especificada como ""). Para criar um novo banco de dados de chaves utilizando a interface de linha de comandos do IKEYCMD, digite o seguinte comando:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -create -db <nome do arquivo>.kdb -pw <senha> -type cms -expire <dias> -stash
Quando a opção -stash é especificada durante a criação do banco de dados de chaves, a senha fica oculta em um arquivo com um nome de arquivo criado da seguinte forma:
<nome do arquivo do banco de dados de chaves>.sthPor exemplo, se o banco de dados que está sendo criado for chamado de keydb.kdb, o nome do arquivo stash é keydb.sth.
Ao criar um novo banco de dados de chaves, especifique uma nova senha para ele. Esta senha protege a chave particular. A chave particular é a única que pode assinar documentos ou decriptografar mensagens criptografadas com a chave pública. Muitas vezes, a alteração da senha do banco de dados de chaves é muito útil.
Utilize as seguintes instruções ao especificar a senha:
Observação: | Acompanhar as datas de expiração da senha. Se a senha expirar, será gravada uma mensagem no log de erros. O servidor será iniciado, mas não haverá uma conexão de rede protegida se a senha houver expirado. |
Para alterar a senha do banco de dados:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD , para obter informações mais detalhadas sobre o IKEYCMD. Para alterar a senha do banco de dados, digite:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -changepw -db <nome do arquivo> .kdb -pw <senha> -new_pw <new_password> -expire <dias> -stash
A definição da configuração inicial para o nome do banco de dados de chaves padrão é key.kdb. Se você utilizar key.kdb como o nome do banco de dados de chaves padrão, não será necessário registrar o banco de dados com o servidor. O servidor utilizará a definição inicial na diretriz KeyFile no arquivo de configuração. Se não utilizar key.kdb como o nome do banco de dados de chaves padrão ou, se criar bancos de dados de chaves adicionais, será necessário registrar esses bancos de dados.
Pares de chaves e pedidos de certificados são armazenados em um banco de dados de chaves. Para criar um par de chaves pública-particular e pedido de certificado:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para criar um par de chaves pública-particular e pedido de certificado:
java com.ibm.gsk.ikeyman.ikeycmd -certreq -create -db <db_name>.kdb -pw <senha> -size <1024 | 512> -dn<distinguished_name> -file <nome do arquivo> -label <etiqueta>em que:
"CN=weblinux.raleigh.ibm.com,O=ibm,OU=IBM HTTP Server,L=RTP,ST=NC,C=US"
java com.ibm.gsk.ikeyman.ikeycmd -certreq -list -db <nome do arquivo> -pw <senha>Deve aparecer a etiqueta listada que acabou de ser criada.
Geralmente demora de duas a três semanas para obtenção de um certificado de uma CA reconhecida. Enquanto aguarda um certificado emitido, utilize o IKEYMAN para criar um certificado do servidor auto-assinado para permitir sessões SSL entre clientes e o servidor. Utilize este procedimento se estiver agindo como sua própria CA para uma rede privada da Web.
Para criar um certificado auto-assinado:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para
obter informações mais detalhadas sobre o IKEYCMD. Para criar um certificado auto-assinado:
Digite o seguinte comando:
java com.ibm.gsk.ikeyman.ikeycmd -cert -create -db <db_name>.kdb -pw <senha> -size <1024 | 512> -dn<nome distinto> -label <etiqueta> -default_cert <yes ou no>em que:
"CN=weblinux.raleigh.ibm.com,O=ibm,OU=IBM HTTP Server,L=RTP,ST=NC,C=US"
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD.
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD.
Para exibir uma lista de autoridades de certificação (CAs) de confiança em um banco de dados de chaves:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para exibir uma lista de CAs de confiança em um banco de dados de chaves:
java com.ibm.gsk.ikeyman.ikeycmd -cert -list CA -db <dbname>.kdb -pw <senha> -type cms
Para abrir um banco de dados de chaves existente:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Não existe abertura explícita de um banco de dados de chaves. Para cada comando, as opções de banco de dados e de senha são especificadas e estas especificações fornecem as informações necessárias para a operação em um banco de dados de chaves.
Utilize este procedimento para receber um certificado enviado eletronicamente por uma autoridade de certificação (CA), designada como uma CA de confiança em seu servidor. Por padrão, as seguintes CAs certificadas são armazenadas no banco de dados de chaves e marcadas como certificados de CA de confiança:
A Autoridade de Certificação pode enviar mais de um certificado. Além do certificado para o seu servidor, a CA pode enviar também certificados adicionais de Assinatura ou Certificados CA Intermediários. Por exemplo, a Verisign inclui um Certificado de CA Intermediário ao enviar um certificado de ID do Servidor Global. Antes de receber o certificado do servidor, receba certificados de CA Intermediários adicionais. Siga as instruções em Armazenando um certificado de CA para receber Certificados de CA Intermediários.
Nota:Se a CA que emitiu seu certificado assinado pela CA não for uma CA de confiança no banco de dados de chaves, primeiro será necessário armazenar o certificado de CA e designar a CA como uma CA de confiança. Em seguida, poderá receber o certificado assinado por CA no banco de dados. Não é possível receber um certificado assinado por CA de uma CA que não seja uma CA de confiança. Para obter instruções, consulte Armazenando um certificado de CA.
Para receber um certificado assinado por CA em um banco de dados de chaves:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para receber um certificado assinado pela CA em um banco de dados de chaves, digite o seguinte comando:
java com.ibm.gsk.ikeyman.ikeycmd -cert -receive -file <nome do arquivo> -db <db_name> .kdb -pw <senha> -format <ascii | binary> -default_cert <yes | no>
Para exibir a entrada de chave padrão:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para exibir a entrada de chave padrão:
java com.ibm.gsk.ikeyman.ikeycmd -cert -getdefault -db <dbname>.kdb -pw <senha>
Para armazenar um certificado de uma CA que não seja de confiança:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para armazenar um certificado de uma CA que não seja de confiança:
java com.ibm.gsk.ikeyman.ikeycmd -cert -add -db <nome do arquivo>.kdb -pw <senha> -label <etiqueta> -format <ascii | binary> -trust <enable |disable> -file <arquivo>em que:
Para uma conexão de rede segura, armazene a senha criptografada do banco de dados em um arquivo stash.
Para armazenar a senha durante a criação de um banco de dados:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para armazenar a senha durante a criação de um banco de dados:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -create -db <path_to_db>/<db_name>.kdb -pw <senha> -type cms -expire <dias> -stash
Para armazenar a senha após a criação de um banco de dados:
Usuários do Linux para S/390: Consulte Utilizando a Interface de Linha de Comandos do IKEYCMD para obter informações mais detalhadas sobre o IKEYCMD. Para armazenar a senha após a criação de um banco de dados:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -stashpw -db <db_name>.kdb -pw <senha>
No Linux para S/390, IKEYCMD, a interface de linha de comandos do Java para IKEYMAN, fornece as opções necessárias para criar e gerenciar chaves, certificados e pedidos de certificados. Se estiver agindo como sua própria CA, você pode utilizar IKEYCMD para criar certificados auto-assinados. Se estiver agindo como seu próprio CA em uma rede privada da Web, você deverá utilizar o utilitário de CA do servidor para gerar e emitir certificados assinados para clientes e servidores de sua rede provada.
Utilize IKEYCMD para tarefas de configuração relacionadas à criação e gerenciamento de chaves pública-privada. Não é possível utilizar IKEYCMD para opções de configuração que atualizam o arquivo de configuração do servidor, httpd.conf. Para opções que atualizam o arquivo de configuração do servidor, você deve utilizar o Servidor de Administração IBM.
O IKEYCMD utiliza chamada da linha de comandos do Java e nativa, permitindo scripts de tarefas de IKEYMAN.
A sintaxe de CLI do Java é:
java [-Dikeycmd.properties=<properties_file>] com.ibm.gsk.ikeyman.ikeycmd <object> <action> [options]
em que:
-Dikeycmd.properties |
|
Object é uma das seguintes opções:
-keydb |
|
-cert |
|
-certreq |
|
-help |
|
-version |
|
Action é a ação específica a ser executada no objeto e options são as opções, necessária e opcional, especificadas para o par objeto e ação.
NOTA: As palavras-chave object e action estão relacionadas à posição e devem ser especificadas na ordem selecionada. No entanto, options (opções) não estão relacionadas à posição e podem ser especificadas em qualquer ordem, desde que sejam especificadas como um par opção e operando.
A tabela a seguir descreve cada ação que pode ser executada em um objeto especificado.
Objeto | Ações | Descrição |
---|---|---|
-keydb | -changepw | Alterar a senha de um banco de dados de chaves
|
-convert | Converter o banco de dados de chaves de um formato em outro
| |
-create | Criar um banco de dados de chaves
| |
-delete | Excluir o banco de dados de chaves
| |
-stashpw | Ocultar a senha de um banco de dados de chaves em um arquivo
| |
-cert | -add | Incluir um certificado de CA de um arquivo em um banco de dados de chaves
|
-create | Criando um certificado auto-assinado | |
-delete | Excluir um certificado de CA
| |
details | Listar informações detalhadas para um certificado específico
| |
-export | Exportar um certificado pessoal e sua chave privada associada
de um banco de dados de chaves para um arquivo PKCS#12, ou para outro banco de dados de chaves
| |
-extract | Extrair um certificado de um banco de dados de chaves
| |
-getdefault | Obter o certificado pessoal padrão
| |
-import | Importar um certificado de um banco de dados de chaves ou arquivo PKCS#12
| |
-list | Listar todos os certificados
| |
-modify | Modificar um certificado (NOTA: Atualmente, o único campo
que pode ser modificado é o campo Confiança do Certificado)
| |
-receive | Receber um certificado de CA de um arquivo em um banco de dados de chaves
| |
-setdefault | Definir o certificado pessoal padrão
| |
-sign | Assinar um certificado armazenado em um arquivo com um certificado
armazenado em um banco de dados de chaves e armazenar o certificado assinado resultante em um arquivo
| |
-certreq | -create | Criar um pedido de certificado
|
-delete | Excluir um pedido de certificado de um banco de dados de pedidos de certificados
| |
-details | Listar informações detalhadas de um pedido de certificado específico
| |
extract | Extrair um pedido de certificado de um banco de dados de pedidos de certificados
em um arquivo
| |
-list | Listar todos os pedidos de certificados no banco de dados de pedidos de certificados
| |
-recreate | Recriar um pedido de certificado
| |
-help | Exibir informações de ajuda para o comando IKEYCMD
| |
-version | Exibir informações sobre a versão do IKEYCMD
|
A tabela a seguir mostra cada opção que pode estar presente na linha de comandos. As opções são listadas como um grupo completo. No entanto, sua utilização depende do objeto e da ação especificados na linha de comandos.
Opção | Descrição |
---|---|
-db | Nome completo do caminho de um banco de dados de chaves.
|
-default_cert | Define um certificado a ser utilizado como o certificado padrão
para autenticação do cliente (yes ou no).
O padrão é no.
|
-dn | Nome distinto X.500. Ele é inserido como uma cadeia
entre aspas, no seguinte formato (somente CN, O e C são necessários):
"CN=Jane Doe,O=IBM,OU=Java Development,L=Endicott, ST=NY,ZIP=13760,C=país" |
-encryption | Intensidade da criptografia utilizado no comando de
exportação de certificados (strong ou weak).
O padrão é strong.
|
-expire | Tempo de expiração de um certificado ou de uma
senha do banco de dados (em dias). Os padrões são: 365 dias para um certificado e 60 dias para uma
senha do banco de dados.
|
-file | Nome do arquivo de um certificado ou pedido de certificado
(dependendo do objeto especificado).
|
-format | Formato de um certificado (ascii
para ASCII Base64_encoded ou binary para dados DER binários). O padrão é ascii.
|
-label | Etiqueta anexada a um certificado ou pedido de certificado.
|
-new_format | Novo formato do banco de dados de chaves.
|
-new_pw | Nova senha do banco de dados.
|
-old_format | Formato antigo do banco de dados de chaves.
|
-pw | Senha para o banco de dados de chaves ou o arquivo PKCS#12.
Consulte Criando um novo banco de dados de chaves.
|
-size | Tamanho da chave (512 ou 1024). O padrão é 1024.
|
-stash | Indicador para ocultar a senha do banco de dados de chaves em um arquivo.
Se especificado, a senha será ocultada em um arquivo.
|
-target | Arquivo ou banco de dados de destino.
|
-target_pw | Senha para o banco de dados de chaves se -target
especificar um banco de dados de chaves. Consulte Criando um novo banco de dados de chaves.
|
-target_type | Tipo de banco de dados especificado pelo -target
(consulte -type).
|
-trust | Status de confiança de um certificado de CA (enable ou disable).
O padrão é enable.
|
-type | Tipo de banco de dados. Os valores permitidos são cms (indica
um banco de dados de chaves CMS), webdb (indica um chaveiro), sslight (indica um SSLight .class) ou
pkcs12 (indica um arquivo PKCS#12).
|
-x509version | Versão do certificado X.509 a ser criado (1, 2 ou 3).
O padrão é 3.
|
A seguir é apresentada uma lista de cada um das chamadas da linha de comandos, com os parâmetros opcionais especificados em itálico.
Nota: Para simplificar, a chamada real do Java, java com.ibm.gsk.ikeyman,iKeycmd, é omitida de cada uma das chamadas de comando.
-keydb -changepw -db <nome do arquivo> -pw <senha> -new_pw <new_password> -stash -expire <dias> -keydb -convert -db <nome do arquivo> -pw <senha> -old_format <cms | webdb> -new_format <cms> -keydb -create -db <nome do arquivo> -pw <senha> -type <cms | sslight> -expire <dias> -stash -keydb -delete -db <nome do arquivo> -pw <senha> -keydb -stashpw -db <nome do arquivo> -pw <senha>
-cert -add -db <nome do arquivo> -pw <senha> -label <etiqueta> -file <nome do arquivo> -format <ascii | binary> -trust <enable | disable> -cert -create -db <nome do arquivo> -pw <senha> -label <etiqueta> -dn <distinguished_name> -size <1024 | 512> -x509version <3 | 1 | 2> -default_cert <no | yes> -cert -delete -db <nome do arquivo> -pw <senha> -label <etiqueta> -cert -details -db <nome do arquivo> -pw <senha> -label <etiqueta> -cert -export -db <nome do arquivo> -pw <senha> -label <etiqueta> -type <cms | sslight> -target <nome do arquivo> -target_pw <senha> -target_type <cms | sslight | pkcs12> -encryption <strong | weak> -cert -extract -db <nome do arquivo> -pw <senha> -label <etiqueta> -target <nome do arquivo> -format <ascii | binary> -cert -getdefault -db <nome do arquivo> -pw <senha> -cert -import -db <nome do arquivo> -pw <senha> -label <etiqueta> -type <cms | sslight> -target <nome do arquivo> -target_pw <senha> -target_type <cms | sslight> -cert -import -file <nome do arquivo> -type <pkcs12> -target <nome do arquivo> -target_pw <senha> -target_type <cms | sslight> -cert -list <all | personal | CA | site> -db <nome do arquivo> -pw <senha> -type <cms | sslight> -cert -modify -db <nome do arquivo> -pw <senha> -label <etiqueta> -trust <enable | disable> -cert -receive -file <nome do arquivo> -db <nome do arquivo> -pw <senha> -format <ascii | binary> -default _cert <no | yes> -cert -setdefault -db <nome do arquivo> -pw <senha> -label <etiqueta> -cert -sign -file <nome do arquivo> -db <nome do arquivo> -pw <senha> -label <etiqueta> -target <nome do arquivo> -format <ascii | binary> -expire <dias>
-certreq -create -db <nome do arquivo> -pw <senha> -label <etiqueta> -dn <distinguished_name> -size <1024 | 512> -file <nome do arquivo> -certreq -delete -db <nome do arquivo> -pw <senha> -label <etiqueta> -certreq -details -db <nome do arquivo> -pw <senha> -label <etiqueta> -certreq -extract -db <nome do arquivo> -pw <senha> -label <etiqueta> -target <nome do arquivo> -certreq -list -db <nome do arquivo> -pw <senha> -certreq -recreate -db <nome do arquivo> -pw <senha> -label <etiqueta> -target <filename>
-help
-version
Para eliminar algumas das inserções nas chamadas de CLI do Java, as propriedades do usuário podem ser especificadas em um arquivo de propriedades. O arquivo de propriedades pode ser especificado na chamada da linha de comandos do Java por meio da opção do Java -Dikeycmd.properties. Um arquivo de propriedades de exemplo, ikeycmd.properties, é fornecido como um exemplo para permitir que os aplicativos Java modifiquem as definições padrão para seu aplicativo.