いつも使ってるオレオレ証明書発行スクリプトがエラーになるので調べた際のメモ

スクリプト内容

だいぶ端折ってますが、該当箇所はだいたいこんな感じ

1
2
3
4
5
6
7
8
9
10
$ cat ca.sh
C="JP" # Country Name
ST="Osaka" # State or Province Name
L="Imakoko" # Locality Name
O="" # Organization Name
OU="" # Organizational Unit Name
CN="hoge.example.com" # Common Name
E="hoge@example.com" # Email Address

/usr/bin/openssl req -sha256 -new -key ${1}.pem -out ${1}_csr.pem -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$E/"

とてもエラー

1
139777958999296:error:0D07A098:asn1 encoding routines:ASN1_mbstring_ncopy:string too short:../crypto/asn1/a_mbstr.c:102:minsize=1

調べた

該当箇所のコードを見てみると、minsize=1というのは、最低文字数制限の事らしい

ので、空白で実行していた「Organization Name」と「Organizationnal Unit Name」にも何らかの値をセットするか、もしくは、実行時点で「O」と「OU」を省略する事で通りました

1
2
3
4
5
// 変更前
/usr/bin/openssl req -sha256 -new -key ${1}.pem -out ${1}_csr.pem -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$E/"

// 変更後
/usr/bin/openssl req -sha256 -new -key ${1}.pem -out ${1}_csr.pem -subj "/C=$C/ST=$ST/L=$L/CN=$CN/emailAddress=$E/"