Em criptografia, um certificado de chave pública é um documento que utiliza uma assinatura digital para ligar uma chave pública a uma identidade física. Esses certificados são muitas vezes referidos genericamente como certificados digitais ou certificados digitais do cliente. O padrão mais comum para certificados digitais é o padrão X.509.
Em criptografia de chave pública, cada certificado possui duas chaves associadas: uma chave pública e uma chave privada. A chave pública é incorporada no certificado X.509 e está sempre disponível com o próprio certificado. A chave privada é sempre mantida privada (ou seja, nunca é transmitida). Para facilitar a portabilidade, as duas chaves (e o certificado) podem ser incluídas em um formato criptografado e protegido por passphrase conhecido como PKCS#12.
Para verificar a autenticidade de um certificado, ele é assinado digitalmente por outro certificado, conhecido como CA (Autoridade de Certificação). Esse certificado de CA pode ser um criado (e mantido seguro) por uma empresa que hospede um aplicativo seguro, ou poderia ser criado por uma empresa como a Verisign.
Quando um aplicativo da Web requer certificados digitais, um administrador cria, normalmente, certificados digitais para cada usuário autorizado. O administrador assina digitalmente cada certificado utilizando o certificado CA do sistema. Esses certificados, juntamente com as chaves pública e privada, são distribuídos aos usuários. Essas chaves sempre serão distribuídas no formato PKCS#12. Em seguida, os usuários importarão esses certificados para os navegadores da Web. Quando o navegador for contestado pelo servidor, ele produzirá seu certificado.
Ao importar certificados para aplicativos da Web, selecione a caixa de opção que indica que as chaves podem ser exportadas. Essa indicação permite que o certificado seja exportado para um arquivo formatado PKCS#12 para uso posterior por outros programas.
Não utilize certificados designados a usuários reais para testes de desempenho. Utilize certificados de teste que não correspondam a usuários reais.
Certificado auto-assinados são utilizados quando nenhuma entidade precisar atestar a autenticidade do certificado. Esses são os certificados mais simples de se criar e utilizar. Entretanto, geralmente um certificado assinado é utilizado para representar um usuário em particular.
Certificados assinados são utilizados quando um certificado precisar ser criado e emitido apenas para um usuário. Certificados assinados são assinados por uma CA (autoridade de certificação).
Certificados de CA (autoridade de certificação) são certificados auto-assinados utilizados para assinar (certificar) certificados.
Certificados não-assinados são certificados que não são nem assinados por uma CA nem auto-assinados. A maioria dos aplicativos da Web não utilizam certificados não-assinados.
Quando você cria um certificado auto-assinado ou assinado (incluindo certificados CA), é possível criar um assunto. O assunto de um certificado é o conjunto de atributos de um Nome X.500 Distinto codificado no certificado. O assunto permite que o destinatário de um certificado consulte informações sobre o proprietário do certificado. O assunto descreve o proprietário do certificado, mas não é necessariamente exclusivo. Pense nos assuntos como entradas de uma agenda telefônica; pode haver várias entradas para Patel Agrawal, mas cada uma delas refere-se a uma pessoa diferente.
Os assuntos podem conter muitos tipos diferentes de dados de identificação. Geralmente, o assunto inclui o seguinte:
Atributo | Exemplo |
---|---|
NOME COMUM (CN) | CN=Patel Agrawal |
ORGANIZAÇÃO (O) | O=IBM Corporation |
UNIDADE ORGANIZACIONAL (OU) | OU=Grupo de Software IBM |
PAÍS (C) | C=IN |
LOCALIZAÇÃO (L) | L=Bangalore |
ESTADO ou PROVÍNCIA (ST) | ST=Kanataka |
ENDEREÇO DE E-MAIL (emailAddress) | emailAddress=agrawal@abc.ibm.com |
Essas informações podem ser digitadas como uma cadeia, com barras para separar os dados.
Por exemplo, o assunto acima seria digitado da seguinte maneira:
/CN=Patel Agrawal/O=IBM Corporation/OU=IBM Software Group/C=IN/L=Bangalore/ST=Karnataka/emailAddress=agrawal@abc.ibm.com
Para saber mais sobre a utilização do programa de linha de comandos fornecido para criar certificados, consulte Criando um Armazenamento de Certificados Digitais.