OpenSSL генерирует .cnf из сценария Windows bat, ошибка: в файле конфигурации не указаны объекты

Я немного застрял, пытаясь сгенерировать сертификаты для Windows 2012R2 AD CS CA с помощью openSSL.

Мой сценарий bat запрашивает некоторые входные данные и использует их для создания файла .cnf для этого конкретного запроса. Когда я запускаю скрипт и открываю файл.cnf, я вижу следующее, и все кажется правильным:

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
[ req_distinguished_name ]
countryName                 = US
stateOrProvinceName         = Michigan
localityName               = Detroit
organizationName           = LEI
commonName                 = nas.lei.com
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = nas.lei.com
DNS.2 = 192.168.1.15
DNS.3 = 

Пока все хорошо, после того, как сценарий bat сгенерирует этот файл, он вызывает следующую команду openSSL:

openssl req -out TEMP/%_CNAME%.req -newkey rsa:2048 -nodes -keyout TEMP/%_CNAME%.key -config TEMP/%_CNAME%.cnf

OpenSSL делает это и начинает выдавать мне следующие данные:

----
You are about to based to enter information that will be incorporated into your certificate request.
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----
US []:
Michigan []:
etc...

Здесь дела идут боком. Если я просто войду через поля, приняв значения по умолчанию из файла .cnf, я получу следующее:

error, no objects specified in config file. Problems making Certificate Request

Теперь, если я вернусь и не буду просто вводить значения по умолчанию, скажем, я установил следующее:

US []: US

Затем он принимает мои файлы .cnf, не генерирует ошибку, но генерирует недопустимый CSR, единственными элементами, которые отображаются в CSR в этом случае, будут Country = US.

Я не могу разобраться в этом, я думал, что это проблема с кодировкой, но когда я проверяю файл в блокноте ++, он закодирован в UTF-8. У кого-нибудь есть предложения?

Вот раздел сценария bat, который генерирует файл .cnf:

REM Create .cnf file
@echo off
@echo [ req ]> TEMP/%_CNAME%.cnf
@echo default_bits       = 2048>> TEMP/%_CNAME%.cnf
@echo distinguished_name = req_distinguished_name>> TEMP/%_CNAME%.cnf
@echo req_extensions     = req_ext>> TEMP/%_CNAME%.cnf
@echo [ req_distinguished_name ]>> TEMP/%_CNAME%.cnf
@echo countryName                 = US>> TEMP/%_CNAME%.cnf
@echo stateOrProvinceName         = Michigan>> TEMP/%_CNAME%.cnf
@echo localityName               = Detroit>> TEMP/%_CNAME%.cnf
@echo organizationName           = LEI>> TEMP/%_CNAME%.cnf
@echo commonName                 = %_DNS%>> TEMP/%_CNAME%.cnf
@echo [ req_ext ]>> TEMP/%_CNAME%.cnf
@echo subjectAltName = @alt_names>> TEMP/%_CNAME%.cnf
@echo [alt_names]>> TEMP/%_CNAME%.cnf
@echo DNS.1 = %_DNS%>> TEMP/%_CNAME%.cnf
@echo DNS.2 = %_DNS2%>> TEMP/%_CNAME%.cnf
@echo DNS.3 = %_DNS3%>> TEMP/%_CNAME%.cnf
0
задан 18 May 2019 в 16:38
1 ответ

Færibreyturnar sem þú notaðir eru leiðbeiningar, þær eru skilgreindar sem eftirfarandi og þú gætir haldið þeim við þessi gildi:

countryName                     = Country Name (2 letter code)
stateOrProvinceName             = State or Province Name (full name)
localityName                    = Locality Name (eg, city)
0.organizationName              = Organization Name (eg, company)
commonName                      = Common Name (eg, your name or your server\'s hostname)

Þú ættir að endurnefna þessar breytur:

countryName                 = US
stateOrProvinceName         = Michigan
localityName               = Detroit
organizationName           = LEI
commonName                 = nas.lei.com

Inn í:

countryName_default             = US
stateOrProvinceName_default     = Michigan
localityName_default            = Detroit
0.organizationName_default      = LEI
commonName_default              = nas.lei.com

Finndu openssl.cnf í kerfinu þínu og skoðaðu það:

1
ответ дан 4 December 2019 в 15:42

Теги

Похожие вопросы