簡體   English   中英

自簽名證書:將值提取到 conf 文件中

[英]self sign certificate : extract values into conf file

我正在創建自簽名證書。 它是幾個本地域的一個 ssl 證書:

  • local.dev.lat.com
  • local.dev.bet.com
  • local.dev.cat.com
  • local.dev.mon.com
  • local.dev.pop.com
  • ...

我有這個命令來創建它:

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout server.key \
  -out server.crt \
  -subj "/CN=*.local.dev.lat.com,*.local.dev.bet.com" \
  -addext "subjectAltName=DNS:*.local.dev.bet.com,DNS:local.dev.bet.com,DNS:*.local.dev.bet.com,DNS:local.dev.bet.com,IP:127.0.0.1"

我的問題是:由於我有大約 30 個域,我想以某種方式將-subj-addext參數提取到 conf 文件中。 可能嗎?

我們將您的證書稱為server.crt ${CERT}

您可以在一個命令中輕松獲取所有請求的信息openssl x509 -noout -in ${CERT} -text 您可以解析它,但這並不理想。 查看 x509 的手冊頁以獲得更好的選擇。

注意我正在使用 bash 進行變量替換。 你也應該。

獲取序列號:

serial=$(openssl x509 -serial -noout -in ${CERT}); #get only the serial
serial=${serial#*=}; #strip the 'serial=' header

獲取主題:

subject=$(openssl x509 -subject -noout -in ${CERT}); #get only the subject
subject=${subject#*=}; #strip the 'subject=' header

現在為 subjectAltName... 這是一個 x509 擴展,所以它變得有點棘手。 但無論如何讓我們嘗試一下:

#use almost every certopt that exists to narrow display to X509v3 section
altname=$(openssl x509 -noout -in ${CERT} -text -certopt no_header,no_version,no_signame \
 -certopt no_validity,no_subject,no_issuer,no_pubkey,no_sigdump,no_aux,no_serial)

#remove previous extensions, headers, and leading spaces
altname=${altname#*X509v3 Subject Alternative Name: $'\n'                };

#remove any possible sections after
altname=${altname%%$'\n'*}

#unset the variable if subjectAltName didn't exist
[[ "${altname}" == "        X509v3 extensions:" ]] && unset altname

在解析 altname 時,您的里程可能會有所不同。 我只是在幾分鍾內完成了這個,所以我確定我錯過了一些邊緣情況。 無論如何...

現在你有了三個變量,你可以隨心所欲地拋出任何東西;

echo -e "${CERT}:\n  Serial:\n    ${serial}\n  Subject:\n    ${subject}\n  subjectAltName:\n    ${altname}"

而已。 任務完成...

#there seems to be a pattern forming here
openssl ec     -text -noout -check  -in private.key #check private key
openssl req    -text -noout -verify -in CSR.csr #check signing request
openssl x509   -text -noout         -in public.crt #check public key
openssl pkcs12 -info -noout         -in keyStore.p12 #check client cert
openssl crl    -text -noout         -in revocation.crl #check certificate revocation list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM