Estou tentando criar uma conexão VPN IPSec com autenticação de certificado x.509 para usuários.
O que se segue é um teste para fazer as coisas funcionarem e não é uma implementação segura. Obterei um certificado de uma fonte confiável quando fizer isso funcionar. Enquanto isso, estou usando um certificado autoassinado.
Estou no Windows 10 20H2
1- Eu crio um certificado raiz com XCA.
2- Eu crio uma solicitação de assinatura de certificado para, digamos, meu primeiro usuário VPN.
3- Assino a solicitação com XCA
4- Exporto a solicitação do XCA no formato PEM
5- Eu instalo o OpenSSL e defino a variável env OPENSSL_CONF como openssl.cfg na pasta de instalação. eu useihttps://slproweb.com/products/Win32OpenSSL.html(64 bits) para openSSL no W10
6- A diversão começa.
No meu entender, tenho que adicionar o certificado na máquina Windows através do mmc na linha de comando usando o snap-in cert. outra coisa de mago. Não aceita formato pem, quer um crt.
Refiro-me então ao OpenSSL para conversão dos formatos
Quando digito x509 -in CERT.pem -out CERTII.crt
Estou tendo o erro a seguir:
Can't open CERT.pem for reading, No such file or directory
15732:error:02001002:system library:fopen:No such file or directory:crypto\bio\bss_file.c:69:fopen('CERT.pem','r')
15732:error:2006D080:BIO routines:BIO_new_file:no such file:crypto\bio\bss_file.c:76:
unable to load certificate
error in x509
Pesquisei bastante e não consigo encontrar um significado exato para esse erro e estou pensando em arrancar os cabelos um por um como uma alternativa viável.
EDITAR 2020-12-11 1600
renomear para .crt e adicionar certificados locais gerou um erro:
file type is not recognizable. Select another file.
Além disso, mesmo ao especificar o caminho completo no cli do openssl com admin priv., recebo um erro.
Se, por exemplo, eu copiar o certificado para a pasta OpenSSL e tentar o comando "openssl x509 -in CERT.pem -out CERT.crt", ocorrerá o seguinte erro:
"unable to load certificate
15252:error:0909006C:PEM routines:get_name:no start line:crypto\pem\pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
error in x509"
EDITAR 2020-12-10 1610 - Snippet do certificado
-----BEGIN CERTIFICATE REQUEST-----
MIIDGjCCAgICAQAwgaExCzAJBgNVBAYTAkNBMQ8wDQYDVQQIEwZRVUVCRUMxEjAQ
....
hfz1ew0RTMxZv2hMlN/wn5Y0EZKpRr5jMrgZprG7
-----END CERTIFICATE REQUEST-----
Suponho que não deveria ser listado como uma solicitação, mas como um certificado assinado.
EDITAR 2020-12-10 1626 EST
UnNamed resolveu meu problema. um grande grito para eles.
no XCA, não fica imediatamente claro, quando você assina uma solicitação, que ela precisa ser exportada de uma guia diferente, certificados.
Sob o certificado raiz usado para assinar o certificado do usuário, há um menu suspenso com o certificado do usuário ASSINADO. Consegui exportá-lo e adicioná-lo ao mmc sem problemas depois de criar uma visualização personalizada para certificados nele.
Continuando a configurar a VPN a partir daqui.
Responder1
O certificado precisa estar no mesmo diretório openssl.exe
ou especificar o caminho completo/absoluto como C:\temp\cert.pem
.
A extensão do arquivo crt é para Windows, o conteúdo está no formato PEM base64. Não há necessidade de "converter" o conteúdo. Basta renomear a extensão do arquivo de .pem
para .crt
.