Esta seção fornece instruções sobre como configurar o OpenXPKI CA versão 2.5.x usando o Protocolo de registro de certificado simples (SCEP).
Notas:
Conecte a máquina usando o PuTTY ou outro cliente.
No cliente, execute o comando
para ir para o usuário raiz.Insira a senha raiz.
Em nano /etc/apt/sources.list , altere a origem para a instalação de atualizações.
Atualize o arquivo. Por exemplo:
# # deb cdrom:[Debian GNU/Linux 8.11.1 _Jessie_ - Official amd64 CD Binary-1 20190211-02:10]/ jessie local main # deb cdrom:[Debian GNU/Linux 8.11.1 _Jessie_ - Official amd64 CD Binary-1 20190211-02:10]/ jessie local main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main # jessie-updates, previously known as 'volatile' # A network mirror was not selected during install. The following entries # are provided as examples, but you should amend them as appropriate # for your mirror of choice. # deb http://ftp.debian.org/debian/jessie-updates main deb-src http://ftp.debian.org/debian/jessie-updates main deb http://ftp.us.debian.org/debian/jessie main
Salve o arquivo.
Execute os seguintes comandos:
Atualize as listas de certificados CA no servidor usando
.Instale en_US.utf8 locale usando
.Selecione o local en_US.UTF-8 UTF-8 e torne-o o local padrão para o sistema.
Verifique os locais gerados usando
.C C.UTF-8 en_IN en_IN.utf8 en_US.utf8 POSIX
Copie a impressão digital do pacote OpenXPKI usando
. Neste exemplo, copie a chave em /home .Digite
como o valor.Execute o seguinte comando:
Adicione o pacote usando o comando
.Adicione o repositório à lista de origem (jessie) usando
e, em seguida, .Instale a ligação MySQL e Perl MySQL usando
.Instale apache2.2-common usando
.Em nano /etc/apt/sources.list , instale o módulo fastcgi para acelerar a interface de usuário.
Adicione a linha
ao arquivo, e salve-o.Execute os seguintes comandos:
Ative o módulo fastcgi usando
.Instale o pacote de núcleo OpenXPKI usando
.Reinicie o servidor Apache usando
.Verifique se a instalação foi bem-sucedida usando
.Crie o banco de dados vazio e atribua o usuário do banco de dados usando
.Notas:
CREATE DATABASE openxpki CHARSET utf8; CREATE USER 'openxpki'@'localhost' IDENTIFIED BY 'openxpki'; GRANT ALL ON openxpki.* TO 'openxpki'@'localhost'; flush privileges;
Se o serviço MySQL não estiver em execução, execute
para iniciar o serviço.Digite
para sair do MySQL.Armazene as credenciais usadas em /etc/openxpki/config.d/system/database.yaml .
debug: 0 type: MySQL name: openxpki host: localhost port: 3306 user: openxpki passwd: openxpki
Salve o arquivo.
Para esquema de banco de dados vazio, execute
no arquivo de esquema fornecido.Insira a senha do banco de dados.
Descompacte o script de exemplo para instalar o certificado usando
.Execute o script usando
.Confirme a configuração usando
.=== functional token === scep (scep): Alias : scep-1 Identifier: YsBNZ7JYTbx89F_-Z4jn_RPFFWo NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 vault (datasafe): Alias : vault-1 Identifier: lZILS1l6Km5aIGS6pA7P7azAJic NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 ca-signer (certsign): Alias : ca-signer-1 Identifier: Sw_IY7AdoGUp28F_cFEdhbtI9pE NotBefore : 2015-01-30 20:44:40 NotAfter : 2018-01-29 20:44:40 === root ca === current root ca: Alias : root-1 Identifier: fVrqJAlpotPaisOAsnxa9cglXCc NotBefore : 2015-01-30 20:44:39 NotAfter : 2020-01-30 20:44:39 upcoming root ca: not set
Verifique se a instalação foi bem-sucedida usando
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Faça o seguinte para acessar o servidor OpenXPKI:
Em um navegador da Web, digite
.Faça login como Operador . A senha padrão é
.Crie uma solicitação de certificado e teste-a.
Para configurar o OpenXPKI CA manualmente, crie o seguinte:
Certificado CA raiz. Para mais informações, consulte Criação de certificados CA raiz .
Certificado do signatário da CA, assinado pela CA raiz. Para mais informações, consulte Criação de certificados do signatário .
Certificado do vault de dados, autoassinado. Para mais informações, consulte Criação de certificados de vault .
Certificado SCEP, assinado pelo certificado do signatário.
Notas:
Neste exemplo, estamos usando o diretório /etc/certs/openxpki_ca-one/ para a geração de certificados. No entanto, você pode usar qualquer diretório.
Execute o seguinte comando:
# x509_extensions = v3_ca_extensions # x509_extensions = v3_issuing_extensions # x509_extensions = v3_datavault_extensions # x509_extensions = v3_scep_extensions # x509_extensions = v3_web_extensions # x509_extensions = v3_ca_reqexts # not for root self-signed, only for issuing ## x509_extensions = v3_datavault_reqexts # not required self-signed # x509_extensions = v3_scep_reqexts # x509_extensions = v3_web_reqexts [ req ] default_bits = 4096 distinguished_name = req_distinguished_name [ req_distinguished_name ] domainComponent = Domain Component commonName = Common Name [ v3_ca_reqexts ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign [ v3_datavault_reqexts ] subjectKeyIdentifier = hash keyUsage = keyEncipherment extendedKeyUsage = emailProtection [ v3_scep_reqexts ] subjectKeyIdentifier = hash [ v3_web_reqexts ] subjectKeyIdentifier = hash keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth [ v3_ca_extensions ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign basicConstraints = critical,CA:TRUE authorityKeyIdentifier = keyid:always,issuer [ v3_issuing_extensions ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign basicConstraints = critical,CA:TRUE authorityKeyIdentifier = keyid:always,issuer:always crlDistributionPoints = URI:http://FQDN of the server/CertEnroll/MYOPENXPKI.crl authorityInfoAccess = caIssuers;URI:http://FQDN of the server/CertEnroll/MYOPENXPKI.crt [ v3_datavault_extensions ] subjectKeyIdentifier = hash keyUsage = keyEncipherment extendedKeyUsage = emailProtection basicConstraints = CA:FALSE authorityKeyIdentifier = keyid:always,issuer [ v3_scep_extensions ] subjectKeyIdentifier = hash basicConstraints = CA:FALSE authorityKeyIdentifier = keyid,issuer [ v3_web_extensions ] subjectKeyIdentifier = hash keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth basicConstraints = critical,CA:FALSE subjectAltName = DNS:stlopenxpki.lexmark.com crlDistributionPoints = URI:http://FQDN of the server/CertEnroll/MYOPENXPKI_ISSUINGCA.crl authorityInfoAccess = caIssuers;URI:http://FQDN of the server/CertEnroll/MYOPENXPKI_ISSUINGCA.crt
Altere o endereço IP e o nome do certificado CA com suas informações de configuração.
Salve o arquivo.
Execute o seguinte comando:
Digite a senha.
Salve o arquivo.
Execute os seguintes comandos:
Execute o seguinte comando:
Altere o assunto na solicitação com suas informações CA usando
.Obtenha o certificado assinado pela CA raiz usando
.Notas:
Execute o seguinte comando:
Altere o assunto na solicitação com suas informações CA usando
.Execute o seguinte comando:
Execute os seguintes comandos:
Copie os arquivos de chave para /etc/openxpki/ca/ca-one/ .
cp /etc/certs/openxpki_ca-one/ca-signer-1.key /etc/openxpki/ca/ca-one/ cp /etc/certs/openxpki_ca-one/vault-1.key /etc/openxpki/ca/ca-one/ cp /etc/certs/openxpki_ca-one/scep-1.key /etc/openxpki/ca/ca-one/
Crie o symlink.
ln -s /etc/openxpki/ca/ca-one/ca-signer-1.key /etc/openxpki/ca/ca-one/ca-signer-1.pem ln -s /etc/openxpki/ca/ca-one/scep-1.key /etc/openxpki/ca/ca-one/scep-1.pem ln -s /etc/openxpki/ca/ca-one/vault-1.key /etc/openxpki/ca/ca-one/vault-1.pem
Importe o certificado raiz, o certificado do signatário, o certificado do vault e o certificado SCEP para o banco de dados com os tokens apropriados.
Execute os seguintes comandos:
Verifique se a importação foi bem-sucedida usando
.=== functional token === scep (scep): Alias : scep-1 Identifier: YsBNZ7JYTbx89F_-Z4jn_RPFFWo NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 vault (datasafe): Alias : vault-1 Identifier: lZILS1l6Km5aIGS6pA7P7azAJic NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 ca-signer (certsign): Alias : ca-signer-1 Identifier: Sw_IY7AdoGUp28F_cFEdhbtI9pE NotBefore : 2015-01-30 20:44:40 NotAfter : 2018-01-29 20:44:40 === root ca === current root ca: Alias : root-1 Identifier: fVrqJAlpotPaisOAsnxa9cglXCc NotBefore : 2015-01-30 20:44:39 NotAfter : 2020-01-30 20:44:39 upcoming root ca: not set
Execute o comando
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Faça o seguinte para acessar o servidor OpenXPKI:
Em um navegador da Web, digite
.Faça login como Operador . A senha padrão é
.Crie uma solicitação de certificado e teste-a.
Pare o serviço OpenXPKI usando
.Em nano /etc/openxpki/config.d/realm/ca-one/publishing.yaml , atualize a seção
para o seguinte:class: Connector::Builtin::File::Path LOCATION: /var/www/openxpki/CertEnroll/ file: "[% ARGS.0 %].crl" content: "[% pem %]"
Em nano /etc/openxpki/config.d/realm/ca-one/profile/default.yaml , atualize o seguinte:
seção
critical: 0 uri: - http://FQDN of the server/CertEnroll/[% ISSUER.CN.0 %].crl - ldap://localhost/[% ISSUER.DN %]
seção
critical: 0 ca_issuers: http://FQDN of the server/CertEnroll/MYOPENXPKI.crt ocsp: http://ocsp.openxpki.org/
Altere o endereço IP e o nome do certificado CA de acordo com o servidor CA.
Em nano /etc/openxpki/config.d/realm/ca-one/crl/default.yaml , faça o seguinte:
Se necessário, atualize
e .Adicione
à seguinte seção:extensions: authority_info_access: critical: 0 # ca_issuers and ocsp can be scalar or list ca_issuers: http://FQDN of the server/CertEnroll/MYOPENXPKI.crt #ocsp: http://ocsp.openxpki.org/
Altere o endereço IP e o nome do certificado CA de acordo com o servidor CA.
Inicie o serviço OpenXPKI usando
.Interrompa o serviço Apache usando
.Crie um diretório CertEnroll para a CRL no diretório /var/www/openxpki/ .
Defina openxpki como o proprietário do diretório e configure as permissões para permitir que o Apache leia e execute, enquanto outros serviços sejam somente leitura.
chown openxpki /var/www/openxpki/CertEnroll
chmod 755 /var/www/openxpki/CertEnroll
Adicione uma referência ao arquivo Apache alias.conf usando
.Após a seção
, adicione o seguinte:Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/" <Directory "/var/www/openxpki/CertEnroll"> Options FollowSymlinks AllowOverride None Require all granted </Directory>
Adicione uma referência no arquivo apache2.conf usando nano /etc/apache2/apache2.conf .
Adicione o seguinte na seção
:<Directory /var/www/openxpki/CertEnroll> Options FollowSymlinks AllowOverride None Allow from all </Directory>
Inicie o serviço Apache usando
.Pare o serviço OpenXPKI usando
.Instale o pacote openca-tools usando
.Inicie o serviço OpenXPKI usando
.Teste o serviço usando qualquer cliente, como certnanny com SSCEP.
Para solicitações automáticas de certificado, estamos usando o recurso de certificado Signatário em nome de OpenXPKI.
Pare o serviço OpenXPKI usando
.Em nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml , na seção
adicione uma regra para o nome do assunto do certificado do signatário.rule1: # Full DN subject: CN=Markvision_.*
Notas:
Salve o arquivo.
Inicie o serviço OpenXPKI usando
.Pare o serviço OpenXPKI usando
.Em nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml , atualize
seção:eligible: initial: value@: connector:scep.generic.connector.initial args: '[% context.cert_subject_parts.CN.0 %]' expect: - Build - New
eligible: initial: value: 1 # value@: connector:scep.generic.connector.initial # args: '[% context.cert_subject_parts.CN.0 %]' # expect: # - Build # - New
Notas:
Salve o arquivo.
Inicie o serviço OpenXPKI usando
.No OpenXPKI, várias estruturas PKI podem ser configuradas no mesmo sistema. Os tópicos a seguir mostram como criar outro realm para MVE chamado ca-two .
Copie a árvore de diretórios de exemplo /etc/openxpki/config.d/realm/ca-one para um novo diretório ( cp -avr /etc/openxpki/config.d/realm/ca-one /etc/openxpki/config.d/realm/ca-two ) dentro do diretório do realm.
Em /etc/openxpki/config.d/system/realms.yaml , atualize a seguinte seção:
# This is the list of realms in this PKI # You only need to enable the realms which are visible on the server ca-one: label: Verbose name of this realm baseurl: https://pki.example.com/openxpki/ #ca-two: # label: Verbose name of this realm # baseurl: https://pki.acme.org/openxpki/
# This is the list of realms in this PKI # You only need to enable the realms which are visible on the server ca-one: label: CA-ONE baseurl: https://pki.example.com/openxpki/ ca-two: label: CA-TWO baseurl: https://pki.example.com/openxpki/
Salve o arquivo.
As instruções a seguir mostram como gerar o certificado do signatário, o certificado do vault e o certificado SCEP. A CA raiz assina o certificado do signatário e, em seguida, o certificado do signatário assina o certificado SCEP. O certificado do vault é autoassinado.
Gere e assine os certificados. Para mais informações, consulte Configuração manual do OpenXPKI CA .
Copie os arquivos de chave para /etc/openxpki/ca/ca-two/ .
cp /etc/certs/openxpki_ca-two/ca-signer-1.key /etc/openxpki/ca/ca-two/ cp /etc/certs/openxpki_ca-two/vault-1.key /etc/openxpki/ca/ca-two/ cp /etc/certs/openxpki_ca-two/scep-1.key /etc/openxpki/ca/ca-two/
Crie o symlink. Além disso, crie um symlink para o certificado CA raiz.
ln -s /etc/openxpki/ca/ca-one/ca-root-1.crt /etc/openxpki/ca/ca-two/ca-root-1.crt ln -s /etc/openxpki/ca/ca-two/ca-signer-1.key /etc/openxpki/ca/ca-two/ca-signer-1.pem ln -s /etc/openxpki/ca/ca-two/scep-1.key /etc/openxpki/ca/ca-two/scep-1.pem ln -s /etc/openxpki/ca/ca-two/vault-1.key /etc/openxpki/ca/ca-two/vault-1.pem
Importe o certificado do signatário, o certificado do vault e o certificado SCEP para o banco de dados com os tokens apropriados para
.openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/ca-signer-1.crt --realm ca-two –issuer /etc/openxpki/ca/ca-two/ca-one-1.crt --token certsign openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/scep-1.crt --realm ca-two --token scep openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/vault-1.crt --realm ca-two --token datasafe
Verifique se a importação foi bem-sucedida usando
.=== functional token === scep (scep): Alias : scep-1 Identifier: YsBNZ7JYTbx89F_-Z4jn_RPFFWo NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 vault (datasafe): Alias : vault-1 Identifier: lZILS1l6Km5aIGS6pA7P7azAJic NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 ca-signer (certsign): Alias : ca-signer-1 Identifier: Sw_IY7AdoGUp28F_cFEdhbtI9pE NotBefore : 2015-01-30 20:44:40 NotAfter : 2018-01-29 20:44:40 === root ca === current root ca: Alias : root-1 Identifier: fVrqJAlpotPaisOAsnxa9cglXCc NotBefore : 2015-01-30 20:44:39 NotAfter : 2020-01-30 20:44:39 upcoming root ca: not set
Nesse caso, as informações da CA raiz são as mesmas para
e .Se tiver alterado a senha da chave de certificado durante a criação do certificado, atualize nano /etc/openxpki/config.d/realm/ca-two/crypto.yaml .
Gere as CRLs para o realm. Para mais informações, consulte Geração de informações do CRL .
Publique as CRLs para o realm. Para mais informações, consulte Configuração da acessibilidade da CRL .
Reinicie o serviço OpenXPKI usando
.Stopping OpenXPKI Stopping gracefully, 3 (sub)processes remaining... DONE. Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Faça o seguinte para acessar o servidor OpenXPKI:
Em um navegador da Web, digite
.Faça login como Operador . A senha padrão é
.O endpoint SCEP do realm padrão é http://<ipaddress>/scep/scep . Se você tiver vários realms, configure um endpoint SCEP exclusivo (arquivo de configuração diferente) para cada realm. Nas instruções a seguir, usamos dois realms PKI,
e .Copie o arquivo de configuração padrão em cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-one.conf .
Em nano /etc/openxpki/scep/ca-one.conf , altere o valor do realm para
.Crie outro arquivo de configuração em cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-two.conf .
Em nano /etc/openxpki/scep/ca-two.conf , altere o valor do realm para
.Reinicie o serviço OpenXPKI usando
.Os endpoints SCEP são os seguintes:
— http://ipaddress/scep/ca-one
— http://ipaddress/scep/ca-two
Se quiser diferenciar entre credenciais de login e modelos de certificado padrão para diferentes realms PKI, talvez uma configuração avançada seja necessária.
Por padrão, no OpenXPKI, somente um certificado com o mesmo nome de entidade pode estar ativo por vez. Mas, quando você está impondo vários certificados nomeados, vários certificados ativos com o mesmo nome de entidade precisam estar presentes de cada vez.
Em /etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml , na seção
, altere o valor de de para .Notas:
Reinicie o serviço OpenXPKI usando
.Por padrão, o Apache escuta na porta número 80. Configure o número de porta padrão para OpenXPKI CA, para evitar conflitos.
Em /etc/apache2/ports.conf , adicione ou modifique uma porta. Por exemplo,
.Em /etc/apache2/sites-enabled/000-default.conf , adicione ou modifique a seção
para mapear a nova porta. Por exemplo, .Reinicie o servidor Apache usando
.Para verificar o status, execute
. O URL de OpenXPKI SCEP agora é http://ipaddress:8080/scep/ca-one , e o URL da Web é http://ip address:8080/openxpki .Por padrão, o OpenXPKI aceita solicitações sem verificar a senha de desafio. A solicitação de certificado não é rejeitada, e a CA e o administrador da CA determinam se a solicitação deve ser aprovada ou rejeitada. Para evitar possíveis problemas de segurança, desative esse recurso para que todas as solicitações de certificados que contenham senhas inválidas sejam rejeitadas imediatamente. No MVE, a Senha de desafio é necessária somente ao gerar o certificado do agente de inscrição.
Em etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml , na seção
, altere o valor de de para .Notas:
Reinicie o serviço OpenXPKI usando
.Em /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml , na seção
altere o valor para .Notas:
Reinicie o serviço OpenXPKI usando
.Por padrão, o OpenXPKI lê apenas o CN do assunto do certificado solicitante. As demais informações, como país, localidade e DC, são codificadas. Por exemplo, se o assunto de um certificado é
, , , , , , após assinar o certificado pelo SCEP, o assunto é alterado para , , .Em /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml , na seção
, altere o valor de para:CN=[% CN.0 %][% IF OU %][% FOREACH entry = OU %],OU=[% entry %][% END %][% END %][% IF O %][% FOREACH entry = O %],O=[% entry %][% END %][% END %][% IF L %],L=[% L.0 %][% END %][% IF ST %],ST=[% ST.0 %][% END %][% IF C %],C=[% C.0 %][% END %][% IF DC %][% FOREACH entry = DC %],DC=[% entry %][% END %][% END %][% IF EMAIL %][% FOREACH entry = EMAIL %],EMAIL=[% entry %][% END %][% END %]
Salve o arquivo.
Crie um arquivo chamado l.yaml no diretório /etc/openxpki/config.d/realm/REALM NAME/profile/template .
Adicione o seguinte:
id: L label: L description: I18N_OPENXPKI_UI_PROFILE_L_DESC preset: L type: freetext width: 60 placeholder: Kolkata
Salve o arquivo.
Crie um arquivo chamado st.yaml no diretório /etc/openxpki/config.d/realm/REALM NAME/profile/template .
Adicione o seguinte:
id: ST label: ST description: I18N_OPENXPKI_UI_PROFILE_ST_DESC preset: ST type: freetext width: 60 placeholder: WB
Salve o arquivo.
Reinicie o serviço OpenXPKI usando
.Acesse o servidor OpenXPKI.
Em um navegador da Web, digite
.Faça login como Operador . A senha padrão é
.Clique em Pesquisa de fluxo de trabalho > Pesquisar agora .
Clique em um certificado para revogar e, em seguida, clique no link do certificado.
Na seção Ação, clique em solicitação de revogação .
Digite os valores apropriados e clique em Continuar > Enviar solicitação .
Na próxima página, aprove a solicitação. A revogação de certificado está aguardando a próxima publicação da CRL.
Na seção Operação de PKI, clique em Emitir uma CRL (Certificate Revocation List, lista de revogação de certificados) .
Clique em Aplicar criação de listas de revogação > Continuar .
Na seção Operação de PKI, clique em Publicar CA/CRL .
Clique em Pesquisa de fluxo de trabalho > Pesquisar agora .
Clique no certificado revogado com um tipo certificate_revogation_request_v2 .
Clique em Forçar ativação .
Na nova CRL, você pode encontrar o número de série e o motivo da revogação do certificado revogado.