Microsoft IIS
Informações Gerais
Este guia de uso integrado com o MS IIS (Microsoft Internet Information Services) foi preparado usando as versões de software e firmware abaixo:
- SO: Windows Server 2019 (inglês)
- IIS: 10
- Firmware do HSM: 5.0.26.0 (ou superior)
- Cliente do HSM: 4.7.30 (ou superior)
- Utilitário hsmutil: 4.7.30 (ou superior)
Requisitos
- Conectividade com o HSM (porta TCP 4433).
- Software client do HSM instalado, (consulte o tópico Windows).
- Utilitário
hsmutil.exe
baixado, (verificar aqui). - Serviço do HSM iniciado.
- Conta do Windows com permissão de administração local.
- Credenciais da partição do HSM onde será criada ou importada a chave privada.
- Pode ser necessário um restart do Windows (para carregar as configurações de local machine).
Chave gerada no HSM
Chave e CSR gerados no HSM via IIS Manager.
-
Criar uma Crypto Provider da Dinamo do Tipo RSA Channel (tipo 12) usando a seguinte entrada na registry.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Dinamo SChannel Cryptographic Provider] "Image Path"="tacndcsp.dll" "type"=dword:0000000c
-
Configurar os parâmetros MS CAPI com as credenciais de partição do HSM na console GUI (Dinamocon).
Configurar endereço IP, nome e senha de uma partição no HSM; e habilitar CNG. A chave privada será gerada nesta partição.
Nota
Manter desmarcada a opção Local Machine Configuration.
-
Abrir tela de gerência do IIS (IIS Manager)
-
Na tela Home do IIS Manager abrir a opção de Server Certificates.
-
Usar a opção Create Certificate Request... para gerar um CSR (Certificate Signing Request).
-
Preencher as informações dos campos que irão compor o certificado.
-
Escolher a Crypto Provider da Dinamo e o tamanho da chave privada
-
Anotar o caminho e o nome do arquivo com o CSR gerado.
arquivo CSR-----BEGIN NEW CERTIFICATE REQUEST----- MIIEbzCCA1cCAQAwZTELMAkGA1UEBhMCQlIxCzAJBgNVBAgMAmRmMREwDwYDVQQH DAhicmFzaWxpYTEPMA0GA1UECgwGZGluYW1vMRcwFQYDVQQLDA5lbmctY3NwLWRp bmFtbzEMMAoGA1UEAwwDbGFiMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC AQEAwENg32Rg9IzuD6wN78syqPLx+OTr9WDWdoaCdKzHGv4ZowZn7svsKc0/HKq6 5m/AyvpUlkDuXF9PJ0TihCcgcTSBDGS5tzdK7b+e+gBC8Jgb1TjE1JnGSbunbKh4 ApPLUCY42tp88fkabvz3Iqp+dHHIDsjG2MDqKrZBX8YXKNPJzJTBihn5glH6unWv 9SrwXZn7AwKqnNQ8NLf1xwQBDQ4b5hzDovmtKhwC39ekhx5Yrtlo8LJ/WM/Lphgk 9UbHpCz4w+L+nZ1FuiS2Fqbi80d1U/YvJuC4X5A5lWxiVLevwH+zmqm+bfKqlOmB 5g68dtxBBh9rvRp6aYOCHxn+sQIDAQABoIIBwzAcBgorBgEEAYI3DQIDMQ4WDDEw LjAuMTc3NjMuMjBPBgkrBgEEAYI3FRQxQjBAAgEFDA9XSU4tUlZEUDJSUTdISkoM HVdJTi1SVkRQMlJRN0hKSlxBZG1pbmlzdHJhdG9yDAtpbmV0bWdyLmV4ZTBkBgor BgEEAYI3DQICMVYwVAIBAR5MAEQAaQBuAGEAbQBvACAAUwBDAGgAYQBuAG4AZQBs ACAAQwByAHkAcAB0AG8AZwByAGEAcABoAGkAYwAgAFAAcgBvAHYAaQBkAGUAcgMB ADCB6wYJKoZIhvcNAQkOMYHdMIHaMA4GA1UdDwEB/wQEAwIE8DATBgNVHSUEDDAK BggrBgEFBQcDATCBkwYJKoZIhvcNAQkPBIGFMIGCMAcGBSsOAwIHMAoGCCqGSIb3 DQMHMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsG CWCGSAFlAwQBFjALBglghkgBZQMEARkwCwYJYIZIAWUDBAECMAsGCWCGSAFlAwQB BTANBggqhkiG9w0DAgIBcDAdBgNVHQ4EFgQUjLWAfxVSmthFnKb2sIIIryIwDgcw DQYJKoZIhvcNAQEFBQADggEBAHruyMBExrnqh8m70dr2CPcIA3Tz23TIYjgaGT+p PirrYJA9vzf5xaBYD/ghvRHk1LFzw/20CKETFb9qGIH9iUpEH8LVXz3CkuztFxBN 7kcRzW5GO7Xs0C5PhIxPq6ktMsJsWext46LsyNdWD1UOQAPvA5/wPHYe8CvJSmTv vzUsEkomeGkcR/Y6yX/JeSXXP7qC74D5UWsoY6rWJ67TV9Ox+H+T17iG1n9V/1Z3 GKouUAWFTRddYvbX/jqrfIQVpdSOR04xCkIgn9p9Kqd+pbgFG0SpMirIpAkR+j9a GT1ckY65z0yvARxdwkFjvCdePvMuyVdlaucjbb2//m61Fc0= -----END NEW CERTIFICATE REQUEST-----
Será gerada uma chave privada RSA na partição do HSM. O nome (id) desta chave é definido pelo IIS Manager. Identifique e anote o nome da chave gerada, ele será utilizado mais adiante. Pode ser útil deixar a console CLI
hsmcon.exe
(linha de comando) mostrando em tempo real a atividade do HSM (opçãoLogs/Follow
) para identificar o nome/id da chave privada gerada.Log no HSM2021/02/16 17:45:21 00003CE8 00039289 000A3309 session thread up [3] 2021/02/16 17:45:21 00003CE8 0003928A 678CC86D e-conn: 208.115.199.22|208.115.199.22 10.61.53. 60:443 - 2021/02/16 17:45:21 00003CE8 0003928B 000A3309 session thread down [2]|208.115.199.22 10.61.53. 60:443 - 2021/02/16 17:45:24 00003CE7 0003928C DCED7818 new key iispart/CSP0670045F, t: 6, a: 00000001, c: 31|10.61.53.163 10.61.53.60:4433 iispart 2021/02/16 17:45:24 00003CE7 0003928D DCED7818 R_COOR trying to setup 12EAD6FB1E46ABCB 04|10.61. 53.163 10.61.53.60:4433 iispart 2021/02/16 17:45:24 00003CE7 0003928E DCED7818 R_COOR prepared 12EAD6FB1E46ABCB 04|10.61.53.163 10.61.53.60:4433 iispart 2021/02/16 17:45:24 00003CE7 0003928F DCED7818 iispart/CSP0670045F created|10.61.53.163 10.61. 53.60:4433 iispart ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ # (1)! 2021/02/16 17:45:24 00003CE7 00039290 DCED7818 pk iispart/CSP0670045F!F7md3iGOTL34+gRTEo/4okX +CR719IPywZ2+yqVpegc=, c: 31|10.61.53.163 10.61.53.60:4433 iispart
- Geração da chave no HSM
-
Levar o CSR até uma Autoridade Certificadora (AC) para a emissão do certificado.
Este passo é externo e depende completamente do procedimento da AC escolhida. Anotar o caminho e nome do certificado (arquivo *.cer) recebido da AC.
-
No IIS Manager use a opção Complete Certificate Request....
-
Informar o arquivo do certificado emitido pela AC.
-
No final do processo o certificado deverá estar listado no IIS Manager para ser utilizado nos
Sites
gerenciados pelo IIS.Nota
O IIS Manager vai fazer a associação entre chave privada e certificado o Provider CSP na conta do usuário. No passo esta associação será refeita para o Provider CNG e na conta da máquina local (local machine).
-
(Re)fazer associação da chave com o certificado no Provider CNG Dinamo na conta da máquina local utilizando o
hsmutil.exe
. Esta reassociação é necessário para que o Local Security Authority Subsystem Service do Windows possa utilizar a chave gerada no HSM.Executar o utilitário
hsmutil.exe
com os parâmetros abaixo. Os valores de<id da chave no HSM>
e<hash/fingerprint do certificado>
devem ser substituídos conforme explicado a seguir.hsmutil -j certassignkey -csp "Dinamo HSM Cryptographic Provider" -store local_machine -repo My -container <id da chave no HSM> -keyspec cng -certhash <hash/fingerprint do certificado>
O
<id da chave no HSM>
é nome da chave privada gerada no passo acima e identificada. Ele é mostrado também na lista de chaves da partição escolhida do HSM.Chave RSA no HSMDinamo - Remote Management Console v. 4.7.29.0 2018 (c) Dinamo Networks HSM 10.61.53.60 e - Engine 5.0.27.0 (DCD) - TCA0000000 - ID iispart ^^^^^^^ Keys/Objects - List Name Type T E Label ================================================================================ CSP0670045F rsa2048 n y ^^^^^^^^^^^ # (1)! Total of objects: 1 Press ENTER key to continue...
- Chave RSA no HSM
O
<hash/fingerprint do certificado>
pode ser verificado diretamente no certificado emitido pela AC, usando o utilitário do Windowscertutil
(linha de comando) ou abrindo o arquivo do certificado no visualizador do Windows.Verificação do hash do certificadoPS > certutil <arquivo do certificado> | Select-String 'Cert Hash\(sha1\):' Cert Hash(sha1): fe8c1b7e672edbc7004a177bc4fad5244c91f4b9
Exemplo de usdo comando de associaçãohsmutil -j certassignkey -csp "Dinamo HSM Cryptographic Provider" -store local_computer -repo My -container CSP0670045F -keyspec cng -certhash fe8c1b7e672edbc7004a177bc4fad5244c91f4b9
-
Alterar a configuração da MS CAPI para a conta de máquina local.
Na console cliente (Dinamocon) do HSM habilite a opção Local Machine configuration.
Nota
O teste de conexão vai deixar de funcionar pois a configuração é transferida da conta do usuário logado para a conta de máquina local.
-
No IIS Manager ir até o site (abaixo do ramo Sites) onde será feito o binding do protocolo HTTPS com o certificado. Por exemplo o Default Web Site.
-
Na opção Bindings... clique em Add para criar um novo binding
-
Na tela de Add Site Binding em Type selecione https e em SSL Certificate selecione o certificado emitido pela AC e importado acima.
-
Testar a configuração com acesso via navegador ao endereço do site configurado.
A partir de um navegador verifique se o endereço do site configurado pode ser acessado via protocolo https. Confira se o certificado utilizado foi o configurado acima.
Nesta verificação pode ser útil deixar a console CLI
hsmcon.exe
(linha de comando) mostrando em tempo real a atividade do HSM (opçãoLogs/Follow
) e verificando que a chave privada está sendo ativada para o fechamento do túnel SSL.Logs no HSM2021/02/16 19:45:05 00003F80 00039C37 13D1B59C iispart auth init, c: 41|10.61.53.163 10.61.53. 60:4433 - 2021/02/16 19:45:05 00003F80 00039C38 13D1B59C iispart auth ok, 10.61.53.163, 6|10.61.53.163 10. 61.53.60:4433 - ^^^^^^^ # (1)! 2021/02/16 19:45:05 00003F80 00039C39 13D1B59C rsa CSP0670045F!F7md3iGOTL34+gRTEo/4okX +CR719IPywZ2+yqVpegc=, c: 41|10.61.53.163 10.61.53.60:4433 iispart ^^^ ^^^^^^^^^^^ # (2)! 2021/02/16 19:45:05 00003F80 00039C3A 13D1B59C e-conn: 10.61.53.163|10.61.53.163 10.61.53. 60:4433 iispart 2021/02/16 19:45:05 00003F80 00039C3B 000A3309 session thread down [5]|10.61.53.163 10.61.53. 60:4433 iispart
- Autenticação no HSM
- Uso da chave no HSM
Chave gerada fora do HSM
-
Configurar os parâmetros MS CAPI com as credenciais de partição do HSM na console GUI (Dinamocon).
Configurar endereço IP, nome e senha de uma partição no HSM; e habilitar CNG. A chave privada será gerada nesta partição.
Nota
Manter desmarcada a opção Local Machine Configuration.
-
Importar o arquivo .pfx no HSM com a console
hsmcon.exe
(linha de comando).Anotar o nome da chave privada e do certificado importados no HSM.
Importação de um arquivo .pfx no HSMDinamo - Remote Management Console v. 4.7.30.0 2018 (c) Dinamo Networks HSM 10.61.53.60 e - Engine 5.0.27.0 (DCD) - TCA0000000 - ID iispart Keys/Objects - Import - Asymmetric Keys - PKCS#12 File (local) : iispart.pfx Private key password : ******** Exportable (y/[n]): Define an Usage Profile (y/[n]): Private key name : sslkey X.509 certificate name (HSM) : sslcert Public key name (ENTER for none) : File loaded successfully. Press ENTER key to continue...
-
Exportar o certificado do HSM para um arquivo (.cer) com a console
hsmcon.exe
(linha de comando).Exportação do certificadoDinamo - Remote Management Console v. 4.7.30.0 2018 (c) Dinamo Networks HSM 10.61.53.60 e - Engine 5.0.27.0 (DCD) - TCA0000000 - ID iispart Keys/Objects - Export - Certificate / PKCS#7 / File Name (HSM) : sslcert Output File (local) (ENTER to dump on screen) : ssliss.cer File exported successfully. Press ENTER key to continue...
-
Importar o certificado (.cer) para o repositório do Computador Local usando o Snap-in para Certificates (Local Machine) do Microsoft Management Console (MMC) do Windows no computador local.
Nota
Importar o arquivo .cer (certificado), não o arquivo .pfx (chave privada).
Nota
O ícone do certificado na lista não mostra uma chave, pois apenas o certificado foi importado.
-
(Re)fazer associação da chave com o certificado no Provider CNG Dinamo na conta da máquina local utilizando o
hsmutil.exe
. Esta reassociação é necessário para que o Local Security Authority Subsystem Service do Windows possa utilizar a chave gerada no HSM.Executar o utilitário
hsmutil.exe
com os parâmetros abaixo.hsmutil -j certassignkey -csp "Dinamo HSM Cryptographic Provider" -store local_computer -repo My -container <id da chave no HSM> -keyspec cng -certhash <hash/fingerprint do certificado>
O
<id da chave no HSM>
é nome da chave privada importada no passo acima e identificada.O
<hash/fingerprint do certificado>
pode ser verificado diretamente no certificado emitido pela AC, usando o utilitário do Windowscertutil
(linha de comando) ou abrindo o arquivo do certificado no visualizador do Windows.PS > certutil <arquivo do certificado> | Select-String 'Cert Hash\(sha1\):' Cert Hash(sha1): fe8c1b7e672edbc7004a177bc4fad5244c91f4b9
Exemplo de usdo comando de associação:
hsmutil -j certassignkey -csp "Dinamo HSM Cryptographic Provider" -store local_computer -repo My -container sslkey -keyspec cng -certhash fe8c1b7e672edbc7004a177bc4fad5244c91f4b9
Após a associação com sucesso entre certificado e chave privada o ícone do certificado na lista do Snap-in do MMC deve exibir uma chave.
-
Alterar a configuração da MS CAPI para a conta de máquina local.
Na console cliente (Dinamocon) do HSM habilite a opção Local Machine configuration.
Nota
O teste de conexão vai deixar de funcionar pois a configuração é transferida da conta do usuário logado para a conta de máquina local.
-
No IIS Manager ir até o site (abaixo do ramo Sites) onde será feito o binding do protocolo HTTPS com o certificado. Por exemplo o Default Web Site.
-
Na opção Bindings... clique em Add para criar um novo binding
-
Na tela de Add Site Binding em Type selecione https e em SSL Certificate selecione o certificado emitido pela AC e importado acima.
-
Testar a configuração com acesso via navegador ao endereço do site configurado.
A partir de um navegador verifique se o endereço do site configurado pode ser acessado via protocolo https. Confira se o certificado utilizado foi o configurado acima.
Nesta verificação pode ser útil deixar a console CLI
hsmcon.exe
(linha de comando) mostrando em tempo real a atividade do HSM (opçãoLogs/Follow
) e verificando que a chave privada está sendo ativada para o fechamento do túnel SSL.Logs no HSN2021/02/16 19:45:05 00003F80 00039C37 13D1B59C iispart auth init, c: 41|10.61.53.163 10.61.53. 60:4433 - 2021/02/16 19:45:05 00003F80 00039C38 13D1B59C iispart auth ok, 10.61.53.163, 6|10.61.53.163 10. 61.53.60:4433 - ^^^^^^^ # (1)! 2021/02/16 19:45:05 00003F80 00039C39 13D1B59C rsa CSP0670045F!F7md3iGOTL34+gRTEo/4okX +CR719IPywZ2+yqVpegc=, c: 41|10.61.53.163 10.61.53.60:4433 iispart ^^^ ^^^^^^^^^^^ # (2)! 2021/02/16 19:45:05 00003F80 00039C3A 13D1B59C e-conn: 10.61.53.163|10.61.53.163 10.61.53. 60:4433 iispart 2021/02/16 19:45:05 00003F80 00039C3B 000A3309 session thread down [5]|10.61.53.163 10.61.53. 60:4433 iispart
- Autenticação no HSM
- Uso da chave no HSM