環境構築

Open SSL のインストール

次のコマンドを入力して Open SSL をインストールします。

apt install openssl

認証局の環境構築

認証局では、他の証明書の署名および失効リストの管理を実施する必要があります。 ここでは、管理のためのディレクトリを生成します。

どこに置いても良いですが、ここでは、 /var/lib/ssl/ca に置くものとします。

  1. 必要なディレクトリ作成します。
    mkdir -p /var/lib/ssl/ca/{certs,crl,newcerts,private,conf}
  2. 権限を設定します。
    chmod 700 /var/lib/ssl/ca/private
  3. 証明書のインデックス管理用ファイルを作成します。
    touch /var/lib/ssl/ca/index.txt
  4. 証明書のシリアル番号管理ファイルを作成します。
    echo 01 > /var/lib/ssl/ca/serial
  5. 失効リスト番号管理ファイルを作成します。
    echo 00 > /var/lib/ssl/ca/crlnumber
    

認証局の openssl.cnf 作成

  1. fileopenssl.cnf を /var/lib/ssl/ca/conf/ 配下にコピーし、適宜必要な設定を修正します。 ※/etc/ssl/openssl.cnf をベースに修正しても構いません。

以下、修正中。 /etc/ssl/openssl.cnf ファイルを /var/lib/ssl/ 配下にコピーし、 次の点を修正します。

  1. 出力先ディレクトリ変更
    [ CA_default ]
    
    # <変更>  出力先ディレクトリを変更
    #* dir          = ./demoCA              # Where everything is kept
    dir             = ca
  2. 署名時のポリシー変更 (必要に応じて)
    # For the CA policy
    [ policy_match ]
    countryName             = match
    stateOrProvinceName     = optional  # <変更> match -> optional
    organizationName        = optional
    organizationalUnitName  = optional  # <変更> match -> optional
    commonName              = supplied
    emailAddress            = optional
    #
    # [備考]
    # match    : 当該項目がCAと同じであること
    # supplied : 当該項目が設定されていること
    # optional : 当該項目の設定有無、一致不一致を問わない
  3. 署名用拡張設定 ★<>の部分は適宜修正すること。
    # ルート認証局 CA証明書用
    [ cert_rootca ]
    subjectKeyIdentifier    = hash
    authorityKeyIdentifier  = keyid:always,issuer
    crlDistributionPoints   = URI:<CRLファイルがあるURL>
    basicConstraints        = critical,CA:TRUE
    keyUsage                = critical,digitalSignature,cRLSign,keyCertSign
     
    # 中間(末端)認証局 CA証明書用
    [ cert_ca ]
    subjectKeyIdentifier    = hash
    authorityKeyIdentifier  = keyid:always,issuer
    subjectAltName          = DNS.1:<ドメイン名>
    extendedKeyUsage        = serverAuth,clientAuth,emailProtection,codeSigning
    crlDistributionPoints   = URI:<CRLファイルがあるURL>
    authorityInfoAccess     = caIssuers;URI:<CA証明書があるURL>
    basicConstraints        = critical,CA:TRUE,pathlen: 0
    keyUsage                = critical,digitalSignature,cRLSign,keyCertSig
    
    
    # サーバー証明書用
    [ cert_server ]
    subjectKeyIdentifier    = hash
    authorityKeyIdentifier  = keyid,issuer
    subjectAltName          = DNS.1:<ドメイン名>
    extendedKeyUsage        = serverAuth, clientAuth
    basicConstraints        = CA:FALSE
    keyUsage                = digitalSignature,keyEncipherment
    
    
    # クライアント証明書用
    [ cert_client ]
    subjectKeyIdentifier    = hash
    authorityKeyIdentifier  = keyid,issuer
    subjectAltName          = DNS.1:<ドメイン名>
    extendedKeyUsage        = clientAuth
    basicConstraints        = CA:FALSE
    keyUsage                = digitalSignature,keyEncipherment

署名拡張用設定詳細

※その他、設定ファイルの詳細は、man v509v3_config を参照ください。


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