中間認証局(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) の証明書の署名依頼と秘密鍵生成

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

#
# 1. 必要なディレクトリ作成
mkdir -p ${TARGET_DIR}/{certs,crl,newcerts,private}
#
# 2. 権限を設定 (private は、作成ユーザーのみ閲覧可能とする)
chmod 700 ${TARGET_DIR}/private
#
# 3. 証明書のインデクス管理用ファイルを作成する。
touch ${TARGET_DIR}/index.txt
#
# 4. 証明書のシリアル番号管理ファイルを作成する。
# (署名の度にこのファイルに記載されている値が増加する。)
echo 01 > ${TARGET_DIR}/serial
#
# 5. 設定ファイル有無チェック
if [ ! -f ${CNF_FILE} ]; then
  echo "not found ${CNF_FILE}"
  exit 1
fi
#
# 6. 証明書生成オプション設定
# ルート認証局の場合 → -x509 オプションを付与
# 中間認証局の場合   → 上位認証局に署名をもらう。
#                       分かりやすいようにファイル名に _req を付けておく。
X509=-x509
OUT_FILE=cacert.pem
if [ ! "${IS_ROOTCA}" = "y" ]; then
  X509=
  OUTFILE=cacert_req.pem
fi
#
# 7. 証明書生成
#    暗号化方式は sha256 を使用する。
#    メリットはあまりないが、SHA1を使用する場合は、
#     -sha256 の代わりに -newkey rsa:2048 を指定のこと
openssl req -new                                \
        ${X509}                                 \
        -sha256                                 \
        -config ./openssl_ca.cnf                \
        -out    ${TARGET_DIR}/${OUT_FILE}       \
        -days   ${DAYS}                         \
        -keyout ${TARGET_DIR}/private/cakey.pem \
        -subj   "${SUBJ}"
# 次のようにパスフレーズの入力が求められるので
# パスフレーズを入力する(2回)
# Enter PEM pass phrase:
# Verifying - Enter PEM pass phrase: 
#
# 8. private 配下のファイルの権限を 600 とする。
chmod 600 ${TARGET_DIR}/private/cakey.pem
#
# 9. 証明書の確認
openssl x509 -text -noout -in ${TARGET_DIR}/cacert.pem
#
# 10. der 形式ファイルを生成する(ブラウザに取り込む場合の形式)
openssl x509 -inform pem -in ${TARGET_DIR}/cacert.pem -outform der -out ${TRARGET_DIR}/cacert.der

備考

PEMPrivacy Enhanced MailBase64にてエンコードした形式
DERDistinguished Encoding RulesASN.1のエンコード方式の一つ X.509

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