В настоящее время я использую openssl x509 для генерации сертификата CA, сертификата сервера и ключа сервера. По некоторым причинам я хотел бы настроить дату -startdate и дату -enddate при создании сертификата. После некоторых исследований я обнаружил, что openssl x509 не поддерживает опции -startdate и -enddate, поэтому мне нужно перейти на openssl ca. Я пробовал несколько дней, но безуспешно, чтобы сменить сценарий на openssl.
Могу ли я чем-нибудь помочь? Ниже приведены мои сценарии для создания сертификата CA, сертификата сервера и ключа сервера с использованием openssl x509.
generateCA.bat
@echo off
@echo *****************************************************
@echo * Generate CA cert
@echo *****************************************************
set path=%path%;C:\Program Files\JDK\bin
c:
cd "C:\OpenSSL-Win64\bin"
set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl_ca.cfg
openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -days 3650
if exist new_cert (
rmdir /s /q new_cert
)
mkdir new_cert
copy /y cacert.pem cacert.crt
copy /y cacert.pem new_cert\cacert.crt
copy /y cacert.pem new_cert\CACert.crt
@echo.
@echo.
pause
generateServerCertAndKey.bat
@echo off
cls
set RANDFILE=C:\OpenSSL-Win64\bin\.rnd
set /p TargetPCName=Enter Target Computer Name (Lower Case preferred):
set /p PemPassword=Enter the PEM pass phrase:
@echo *****************************************************
@echo * Creating Server cert
@echo *****************************************************
set path=%path%;C:\Program Files\JDK\bin
set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg
openssl req -config openssl.cfg -new -nodes -batch -keyout private/server.key -out server.csr -days 3650
@echo *****************************************************
@echo * Create the Server cert
@echo *****************************************************
openssl ca -extensions req_ext -config openssl.cfg -policy policy_anything -key %PemPassword% -batch -subj "/CN=%TargetPCName%" -out certs/server.crt -infiles server.csr
if exist new_cert (
rmdir /s /q new_cert
)
mkdir new_cert
copy cacert.pem new_cert\cacert.crt
copy cacert.pem new_cert\CACert.crt
copy private\server.key new_cert\server.key
copy certs\server.crt new_cert\server.crt
@echo.
@echo.
pause