※こちらは旧サイトです(新サイトはこちら

OpenSSLで「ASN1_mbstring_ncopy:string too short」が出て困ったので対処したメモ

2017-09-17 20:04:28

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

スクリプト内容

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

$ 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/"

とてもエラー

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」を省略する事で通りました

// 変更前
/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/"