Hoxe pasamos á parte práctica. Comecemos configurando a nosa CA baseada na biblioteca criptográfica de código aberto openSSL. Este algoritmo foi probado usando Windows 7.
Con openSSL instalado, podemos realizar varias operacións criptográficas (como crear claves e certificados) a través da liña de comandos.
O algoritmo de accións é o seguinte:
Descarga a distribución de instalación openssl-1.1.1g.
openSSL ten diferentes versións. A documentación de Rutoken indica que é necesaria a versión 1.1.0 ou posterior de openSSL. Usei a versión openssl-1.1.1g. Podes descargar openSSL desde o sitio oficial, pero para unha instalación máis sinxela, necesitas atopar o ficheiro de instalación de Windows na rede. Fixen isto por ti: slproweb.com/products/Win32OpenSSL.html
Desprácese cara abaixo na páxina e descargue o instalador Win64 OpenSSL v1.1.1g EXE 63MB.
Instala openssl-1.1.1g no ordenador.
A instalación debe realizarse segundo o camiño estándar, que se indica automaticamente no cartafol C: Arquivos de programas. O programa instalarase no cartafol OpenSSL-Win64.
Para configurar openSSL como o necesitas, hai o ficheiro openssl.cfg. Este ficheiro atópase na ruta C:\Program Files\OpenSSL-Win64bin se instalou openSSL como se describe no parágrafo anterior. Vaia ao cartafol onde se almacena openssl.cfg e abra este ficheiro usando, por exemplo, Notepad++.
Probablemente adiviñaches que a autoridade de certificación se configurará dalgún xeito cambiando o contido do ficheiro openssl.cfg e tes toda a razón. Isto require a personalización do comando [ ca ]. No ficheiro openssl.cfg, o inicio do texto onde faremos cambios pódese atopar como: [ ca ].
Agora vou dar un exemplo dunha configuración coa súa descrición:
Agora necesitamos crear o directorio e os subdirectorios demoCA como se mostra no exemplo anterior. E colócao neste directorio ao longo da ruta que se especifica en dir (teño /Users/username/bin/openSSLca/demoCA).
É moi importante escribir dir correctamente: este é o camiño ao directorio onde estará o noso centro de certificación. Este directorio debe estar situado en /Usuarios (é dicir, na conta dalgún usuario). Se colocas este directorio, por exemplo, en C: Ficheiros de programas, o sistema non verá o ficheiro coa configuración openssl.cfg (polo menos foi así para min).
$dir - o camiño especificado en dir substitúese aquí.
Outro punto importante é crear un ficheiro index.txt baleiro, sen este ficheiro os comandos "openSSL ca..." non funcionarán.
Tamén precisa ter un ficheiro de serie, unha clave privada raíz (ca.key), un certificado raíz (ca.crt). O proceso de obtención destes ficheiros describirase a continuación.
Conectamos os algoritmos de cifrado proporcionados por Rutoken.
Esta conexión ten lugar no ficheiro openssl.cfg.
Primeiro de todo, cómpre descargar os algoritmos Rutoken necesarios. Estes son os ficheiros rtengine.dll, rtpkcs11ecp.dll.
Para iso, descarga o SDK de Rutoken: www.rutoken.ru/developers/sdk.
O Rutoken SDK é todo o que hai para desenvolvedores que queiran probar Rutoken. Hai dous exemplos separados para traballar con Rutoken en diferentes linguaxes de programación e preséntanse algunhas bibliotecas. As nosas bibliotecas rtengine.dll e rtpkcs11ecp.dll están situadas no sdk de Rutoken, respectivamente, na localización:
Un punto moi importante. As bibliotecas rtengine.dll, rtpkcs11ecp.dll non funcionan sen o controlador instalado para Rutoken. Tamén Rutoken debe estar conectado ao ordenador. (para instalar todo o que precisa para Rutoken, consulte a parte anterior do artigo habr.com/en/post/506450)
As bibliotecas rtengine.dll e rtpkcs11ecp.dll pódense gardar en calquera lugar da conta de usuario.
Escribimos os camiños a estas bibliotecas en openssl.cfg. Para iso, abra o ficheiro openssl.cfg, poña a liña ao comezo deste ficheiro:
dynamic_path: debes especificar o teu camiño á biblioteca rtengine.dll.
MODULE_PATH: debes escribir o teu camiño á biblioteca rtpkcs11ecp.dll.
Engadindo variables de ambiente.
Asegúrese de engadir unha variable de ambiente que especifique o camiño ao ficheiro de configuración openssl.cfg. No meu caso, a variable OPENSSL_CONF creouse co camiño C:Program FilesOpenSSL-Win64binopenssl.cfg.
Na variable de ruta, debes especificar o camiño ao cartafol onde se atopa openssl.exe, no meu caso é: C: Arquivos de programaOpenSSL-Win64bin.
Agora podes volver ao paso 5 e crear os ficheiros que faltan para o directorio demoCA.
O primeiro ficheiro importante sen o cal nada funcionará é a serie. Este é un ficheiro sen extensión, cuxo valor debería ser 01. Podes crear este ficheiro ti mesmo e escribir 01 dentro. Tamén podes descargalo desde o SDK de Rutoken pola ruta sdk/openssl/rtengine/samples/tool/demoCA /.
O directorio demoCA contén o ficheiro en serie, que é exactamente o que necesitamos.
Crea unha clave privada raíz.
Para iso, utilizaremos o comando da biblioteca openSSL, que debe executarse directamente na liña de comandos:
Creamos un certificado raíz.
Para iso, use o seguinte comando da biblioteca openSSL:
openssl req -utf8 -x509 -key ca.key -out ca.crt
Teña en conta que a clave privada raíz, que se xerou no paso anterior, é necesaria para xerar o certificado raíz. Polo tanto, a liña de comandos debe iniciarse no mesmo directorio.
Agora todo ten todos os ficheiros que faltan para a configuración completa do directorio demoCA. Colocar os ficheiros creados nos directorios indicados no punto 5.
Asumiremos que despois de completar os 8 puntos, o noso centro de certificación está totalmente configurado.
Na seguinte parte, describirei como traballaremos coa autoridade de certificación para cumprir o descrito en a parte anterior do artigo.