Como criar um certificado de formação auto -confirmada com PowerShell

Os certificados autoassinados são uma maneira fácil de realizar testes e outras tarefas menos importantes. Os certificados autoassinados não têm uma cadeia de certificados confiável por trás deles e são assinados pelo usuário que os criou. Se você confiar na entidade que assinou o certificado, poderá usá-lo como faria com um certificado devidamente validado.

Se você precisar criar um certificado autoassinado, uma maneira de fazer isso é com o PowerShell. Neste artigo, você aprenderá como criar um certificado autoassinado no PowerShell.

índice

  1. Criar um certificado autoassinado
  2. Encontre informações sobre nosso certificado
  3. certificado de assinatura de código
  4. Certificado de segurança do documento
  5. Resumo

Criar um certificado autoassinado

Para criar um certificado autoassinado com o PowerShell, você pode usar o cmdlet New-SelfSignedCertificate . Este cmdlet está incluído no módulo PKI .

Há muitas opções ao criar certificados. Os tipos comuns de certificados autoassinados são SSLServerAuthentication (padrão para o cmdlet) e CodeSigning . Além disso, você pode criar um DocumentEncryptionCert , que é muito útil para criptografar arquivos e, finalmente, um certificado Custom que permite especificar muitas opções personalizadas.

Vamos em frente e criar um certificado SSLServerAuthentication . Isso é o que normalmente é usado para proteger sites com criptografia SSL. Você pode ver um exemplo disso abaixo. Neste exemplo, o certificado é armazenado no Cert:LocalMachineMy Certificate Store .

 $Params = @{ "DnsName" = @("mywebsite.com","www.mywebsite.com") "CertStoreLocation" = "Cert:LocalMachineMy" "NotAfter" = (Get-Date).AddMonths(6) "KeyAlgorithm" = "RSA" "KeyLength" = "2048" } PS C:> New-SelfSignedCertificate @Params PSParentPath: Microsoft.PowerShell.SecurityCertificate::LocalMachineMy Thumbprint Subject EnhancedKeyUsageList ---------- ------- -------------------- 4EFF6B1A0F61B4BG692C77F09889BD151EE8BB58 CN=mywebsite.com {Client Authentication, Server Authentication}

Se tudo correu bem, agora você deve ter um certificado recém-criado! Observe que a saída retorna o objeto, mas o objeto mostra apenas o primeiro elemento passado pelo parâmetro DnsName do botão. Isso ocorre porque a segunda URL passa a fazer parte da lista de tópicos alternativos.

* Observe que, se você tentar executá-lo, não como administrador, receberá uma mensagem de erro como a seguinte:

New-SelfSignedCertificate: CertEnroll::CX509Enrollment::_CreateRequest: Access denied. 0x80090010 (-2146893808 NTE_PERM)

Como você pode saber com Access denied , você ainda não tem permissão para realizar esta operação. *

Encontre informações sobre nosso certificado

Vamos verificar se o certificado foi criado conforme o esperado. Para encontrar informações sobre um certificado específico com o PowerShell, você pode usar o cmdlet Get-ChildItem , assim como pode estar listando arquivos em um diretório.

 PS C:> Get-ChildItem -Path "Cert:LocalMachineMy" | Where-Object Thumbprint -EQ 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58 | Select-Object * PSPath : Microsoft.PowerShell.SecurityCertificate::LocalMachineMy4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58 58 PSParentPath : Microsoft.PowerShell.SecurityCertificate::LocalMachineMy PSChildName : 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58 PSDrive : Cert PSProvider : Microsoft.PowerShell.SecurityCertificate PSIsContainer : False EnhancedKeyUsageList : {Client Authentication (1.3.6.1.5.5.7.3.2), Server Authentication (1.3.6.1.5.5.7.3.1)} DnsNameList : {mywebsite.com, www.mywebsite.com} SendAsTrustedIssuer : False EnrollmentPolicyEndPoint : Microsoft.CertificateServices.Commands.EnrollmentEndPointProperty EnrollmentServerEndPoint : Microsoft.CertificateServices.Commands.EnrollmentEndPointProperty PolicyId : Archived : False Extensions : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid, System.Security.Cryptography.Oid, System.Security.Cryptography.Oid} FriendlyName : HasPrivateKey : True PrivateKey : System.Security.Cryptography.RSACng IssuerName : System.Security.Cryptography.X509Certificates.X500DistinguishedName NotAfter : 6/22/2020 11:50:15 AM NotBefore : 12/22/2019 10:40:20 AM PublicKey : System.Security.Cryptography.X509Certificates.PublicKey RawData : {48, 130, 3, 55} SerialNumber : 608C4D5E6B8D41B44ADDC6BD725FE264 SignatureAlgorithm : System.Security.Cryptography.Oid SubjectName : System.Security.Cryptography.X509Certificates.X500DistinguishedName Thumbprint : 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58 Version : 3 Handle : 2628421609632 Issuer : CN=mywebsite.com Subject : CN=mywebsite.com

Há muitas informações excelentes aqui, mas você pode notar no DnsNameList que ambos os sites estão sendo exibidos agora. Além disso, a data NotAfter é preenchida corretamente para 6 meses a partir da data de criação.

certificado de assinatura de código

Se você trabalha no PowerShell, conheça os critérios de execução. Se você tiver uma política de execução definida como AllSigned , deverá assinar todos os scripts executados em seu sistema. Criar um certificado para fazer isso é bem simples!

 PS C:> New-SelfSignedCertificate -Type 'CodeSigningCert' -DnsName 'MyHost' PSParentPath: Microsoft.PowerShell.SecurityCertificate::LocalMachineMY Thumbprint Subject EnhancedKeyUsageList ---------- ------- -------------------- 14D535EG834370293BA103159EB00876A79959D8 CN=MyHost Code Signing

Certificado de segurança do documento

Você pode não ter encontrado muito antes, mas o PowerShell, com a API de proteção de dados, pode criptografar os arquivos em seu sistema usando um certificado de proteção de documentos. Usando o cmdlet New-SelfSignedCertificate , podemos criar facilmente um certificado para criptografar seus documentos.

 $Params = @{ "DnsName" = "MyHost" "CertStoreLocation" = "Cert:CurrentUserMy" "KeyUsage" = "KeyEncipherment","DataEncipherment","KeyAgreement" "Type" = "DocumentEncryptionCert" } PS C:> New-SelfSignedCertificate @Params Thumbprint Subject EnhancedKeyUsageList ---------- ------- -------------------- 14D535EG934370293BA203159EB00876A79959D8 CN=MyHost Document Encryption

Com esse tipo de certificado, agora você pode usar o certificado criado para criptografar e descriptografar o conteúdo usando comandos do PowerShell, como Protect-CMSMessage is UnProtect-CMSMessage .

Criptografar/descriptografar conteúdo como esse se torna útil se você precisar transferir os dados criptografados, pois você pode usar esse certificado em outro sistema para descriptografar os dados. Se você confiar na API de proteção de dados padrão (DPAPI) incorporada ao Windows, não poderá descriptografar dados em outros sistemas ou para outros usuários.

Resumo

O PowerShell facilita a criação de certificados autoassinados. Esses certificados têm uma ampla variedade de usos, mas uma observação importante a ser lembrada é que eles devem ser usados ​​apenas para testes. Você não terá uma cadeia de confiança de certificado válida para validar seus certificados autoassinados.

Vendo como é rápido e fácil criar certificados autoassinados, você pode começar hoje e criptografar com sucesso qualquer conexão ou informação que você precisar.

  • Por que o Windows 11 não é compatível com minha CPU?
  • Como gerenciar as regras do Firewall do Windows com o PowerShell

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

Deixe uma resposta Cancelar resposta

Como criar um certificado autoassinado no Windows?

Se você deseja instalar um certificado SSL autoassinado em sua hospedagem Windows , recomendamos que você siga estas etapas:

  1. Abra o Gerenciador do IIS e selecione o nó.
  2. Selecione a opção Criar um certificado autoassinado .
  3. Acesse o site onde deseja que o certificado seja instalado.
  4. Clique em Adicionar.

O que é certificado SSL autoassinado?

Um certificado autoassinado contém uma chave pública, informações sobre o proprietário do certificado e a assinatura do proprietário. Possui uma chave privada associada, embora não verifique a origem do certificado por meio de uma CA de terceiros.

Como criar um certificado autoassinado do IIS?

Criar um certificado autoassinado no IIS

No Gerenciador do IIS , faça o seguinte para criar um certificado autoassinado : No painel Conexões, selecione o servidor na exibição em árvore e clique duas vezes em Certificados de servidor. No painel Ações, clique em Criar certificado autoassinado .

Como exportar certificado no Windows?

Vamos para Configurações> Configurações avançadas> Privacidade e segurança> Gerenciar certificados . Na janela que se abre, selecione o certificado a ser exportado e pressione o botão « Exportar ». Em seguida, um assistente do Windows será aberto para exportar certificados .

Ir arriba