Openssl
為什麼 openssl 列印到 stderr 以獲得成功的命令?
當我使用 openssl 生成 CSR 時,正常輸出到 stderr。我不明白為什麼它不在標準輸出上。我正在編寫一些證書/密鑰對的生成腳本,並希望能夠檢測到錯誤情況,但這會使問題感到困惑。
admin@ip-10-248-185-66:~> openssl req -rand $RAND -new -newkey rsa:2048 -nodes -keyout $KEYPATH -subj /C=US/ST=CA/L=LA/O=TS/OU=server/CN=primary -out $CSRPATH -config $CONFPATH Generating a 2048 bit RSA private key .........................+++ ..................................+++ writing new private key to '$KEYPATH' ----- admin@ip-10-248-185-66:~> echo $? 0 admin@ip-10-248-185-66:~> openssl req -rand $RAND -new -newkey rsa:2048 -nodes -keyout $KEYPATH -subj /C=US/ST=CA/L=LA/O=TS/OU=server/CN=primary -out $CSRPATH -config $CONFPATH 2>/dev/null admin@ip-10-248-185-66:~>
給使用者的消息在 stderr 上進行。進入標準輸出的是命令的結果
openssl
。預設情況下,除非您使用
-in
or-out
,否則openssl
從標準輸入獲取數據(密鑰、證書…)並將數據寫入標準輸出(結果類似於請求 pem 文件)。在 shell 中,您通常將其用作:
openssl cmd < in.pem > out.pem
您不希望發送給使用者的消息最終
out.pem
會在 stderr 上發出。