中間認証局(CA)構築

中間認証局(CA)もルート認証局と同様に 認証局に必要な秘密鍵と証明書が必要となります。 違いは、証明書の作成方法とルート認証局に署名してもらう点です。

次の手順は、認証局(CA)構築を参照下さい。

  1. opensslのインストール
  2. 設定ファイル (openssl_ca.cnf) 作成

生成する証明書の情報設定 (一時的に環境変数に設定する)

ルート認証局との違いを★で示しております。

# -------------------------------------------------------
#  設定
# -------------------------------------------------------
CNF_FILE=openssl_ca.cnf         # 設定ファイル名
TARGET_DIR=CA                   # 作成先ディレクトリ
IS_ROOTCA=n                     # ★中間認証局のためnを指定する
DAYS=3650                       # 有効期間
# SUBJの設定
# 次の値を指定可能
# /C=[国]
# /ST=[都道府県]
# /L=[市町村]
# /O=[組織]
# /OU=[部門]
# /CN=[コモンネーム(サーバ証明書の場合 FQDN を指定する)]
# (*1) サーバー証明書の場合は、FQDN を指定する。
SUBJ="/C=JP/O=Ehobby/OU=Server CA/CN=Ehobby"

中間認証局(CA) の証明依頼書と秘密鍵生成

【ルート認証局(CA) の証明書と秘密鍵生成】 と同じスクリプトを実行します。 (IS_ROOTCA のフラグが異なるため生成されるファイルが変わります。)

証明依頼

署名依頼書「${TARGET_DIR}/cacert_req.pem」ファイルが生成されているので 本ファイルをルート認証局に渡して署名してもらう。

署名 (ルート認証局にて実施する)

  1. 次のスクリプトを「openssl_ca.sh」を置いた場所と同じディレクトリに用意する。
    #!/bin/bash
    
    CERT_NAME=$1
    CNF_FILE=/export/ssl/openssl_ca.cnf
    DAYS=180
    if [ ! "${2}" = "" ]; then
    DAYS=${2}
    fi
    
    CERT_SIGNED=`echo ${CERT_NAME} | sed "s/^\(.*\)_req.pem$/\1/"`
    CERT_SIGNED_PEM=${CERT_SIGNED}.pem
    CERT_SIGNED_DER=${CERT_SIGNED}.der
    
    if [ ! -f "${CERT_SIGNED_PEM}" ]; then
    echo "Usage: ${0} xxxxx_req.pem [day]"
    echo "Ex) ${0} cacert_req.pem 180"
    exit 1
    fi
    
    openssl ca -md sha256 -config ${CNF_FILE} -policy policy_match -extensions v3_ca -days ${DAYS} -out ${CERT_SIGNED_PEM} -infiles ${CERT_NAME}
    openssl x509 -inform pem -in ${CERT_SIGNED_PEM} -outform der -out ${CERT_SIGNED_DER}
    echo "------------------------------------------"
    echo "Input file        : ${CERT_NAME}"
    echo "Output file [pem] : ${CERT_SIGNED_PEM}"
    echo "Output file [der] : ${CERT_SIGNED_DER}"
  2. 署名する
    ./sign.sh [証明依頼書] [有効日数]
  3. 署名後の pem, der ファイルを中間認証局に返却する。

トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS