# openssl.cnf 日本語解説版 2005/1/31 # このドキュメントはopenssl projectとは関係ありません # 日替わり実験室の管理人が暇つぶしに翻訳して拡張したものです。 # このドキュメントに関する質問や指摘はopenssl projectにはしないでください # 間違いの指摘などはこちらへお願いします # URL:http://www.yggdrasil.jp/ # Mailto:meguro at yggdrasil.jp s/ at /@/ #################################################################### [ ca ] default_ca = CA_default # デフォルトのCAセクションを指定 #################################################################### [ CA_default ] dir = /etc/CA # /etc/CAをCAのホームディレクトリに指定 certs = $dir/certs # 証明書を保管する場所 crl_dir = $dir/crl # 失効リスト(CRL)を置く場所 database = $dir/index.txt # シリアルと発行した証明書のインデックス new_certs_dir = $dir/newcerts # 新しく自分が発行した証明書を置く certificate = $dir/ca.crt # CAの証明書 serial = $dir/serial # 次に発行する証明書につけられるシリアル crl = $dir/crl.pem # 自分で失効した証明書のCRL private_key = $dir/private/ca.key # CAの秘密鍵 RANDFILE = $dir/private/.rand # デフォルトのランダムファイル x509_extensions = usr_cert # x509のv3拡張をuser_certに定義 # ここでCRLを拡張することができます # Netscape communicatorはV2のCRLを使っていますが、 # V1のCRLを残すためにコメントアウトしてます # crl_extensions = crl_ext default_days = 365 # 証明書のデフォルトの有効期限 default_crl_days= 30 # CRLの収集間隔 #default_md = md5 # メッセージダイジェストの選択 default_md = sha1 # 近年ではsha1が安全かつ一般的 preserve = no # 古いIEのためのオプション # 証明書の発行ポリシー policy = policy_match # 発行ポリシーは[policy_match]を利用 # ポリシーの実体です # それぞれの属性がどのような場合に発行を許可するかを決めます # ポリシーに一致していれば発行を許可することができるというだけで、 # 最終的には発行者が発行の可否を決めることができます # matchはCAのものと発行要求が一致 # optionalは任意(空欄可) # suppliedは空欄不可 # CSR作成時にmatchのものはCAのものと一致させる必要があります #################################################################### # 厳しめのポリシー [ policy_match ] countryName = match # 国名(C)が一致 stateOrProvinceName = optional # 州名・県名(S)は任意 organizationName = match # 団体名(O)が一致 organizationalUnitName = optional # 部署名(OU)は任意 commonName = supplied # 一般名(CN)は空欄不可 emailAddress = optional # メールアドレスは任意 #################################################################### # ゆるめのポリシー # 一般名(CN)さえ埋まっていれば証明書の発行を許可します [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### # 証明書発行要求(CSR)に関するデフォルト値設定 [ req ] default_bits = 1024 # 公開鍵の鍵長 default_keyfile = privkey.pem # -in を指定しないときの秘密鍵 distinguished_name = req_distinguished_name# req_distinguished_nameを参照 attributes = req_attributes # req_attributesを参照 x509_extensions = v3_ca # 自己署名はv3_caを参照 # 秘密鍵を暗号化しているときに、鍵を取り出すためのパスフレーズ # "-in"で指定した秘密鍵にかかっているパスフレーズ # input_password = secret # "-out"で指定した秘密鍵にかけるパスフレーズ # output_password = secret # 許容する文字タイプの種類 # 次のようなオプションがある # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString. # utf8only: UTF8Strings のみ # nombstr : PrintableString, T61String (BMPStringsとUTF8Stringsは含まない) # MASK:XXXX a literal mask value. # 注意:Netscapeの最新バージョンではBMPStringsまたはUTF8Stringsを使用すると # クラッシュするので、このオプションを使うときは注意が必要です。 string_mask = nombstr # req_extensions = v3_req # 証明書リクエストの拡張はv3_reqに定義 #################################################################### [ req_distinguished_name ] # 証明書の内容のデフォルト値とreqを発行時の問いかけです。 # XXXX_defaultはデフォルト値 # XXXX_minは値のlengthの最小値 # XXXX_maxは値のlengthの最大値 # 国名(C) countryName = Country Name (2 letter code) countryName_default = JP countryName_min = 2 countryName_max = 2 # 州名・県名(S) stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Tokyo # 都市名(L) localityName = Locality Name (eg, city) localityName_default = Shinjuku-ku # 団体名(O) 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Example K.K. # 団体名の拡張 #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd # 組織名(OU) 0.organizationalUnitName = Organizational Unit Name (eg, section) #0.organizationalUnitName_default = # 組織名(OU)の2つめ 1.organizationalUnitName = Second Organizational Unit Name # 一般名(CN) commonName = Common Name (eg, YOUR name) commonName_max = 64 # メールアドレス emailAddress = Email Address emailAddress_max = 40 # SET-ex3 = SET extension number 3 # ここではCSRの属性(attributes)を追加できます # 証明書を発行するときに消えてしまいます(属性証明書については調査不足) [ req_attributes ] #challengePassword = A challenge password #challengePassword_min = 4 #challengePassword_max = 20 #unstructuredName = An optional company name #################################################################### [ usr_cert ] # CAで証明書発行をするときのRFC2459に基づくX.509 v3拡張項目 # 次のURLが詳しいです # http://www.openssl.org/docs/apps/x509v3_config.html # お手元にRFC2459をご用意いただくと理解しやすいと思います # X.509v3 Basic Constraints(基本的制約) # CAの証明書を発行できる場合はTRUEに、 # エンドエンティティ証明書(サーバー証明書やクライアント証明書)のみを # 発行する場合はFALSEに設定します basicConstraints=CA:FALSE # TRUEの場合は、pathLenConstraintでいくつCAの証明書を # 発行することができるかを指定します # pathLenConstraintを設定するときは0以上の数字を設定します # 設定しないと無制限になります #basicConstraints=CA:True,pathLenConstraint:2 # NetscapeのCertTypeをnsCertTypeで表します # この項目が省略された証明書はobject signingに使用できません # MSのブラウザを使っている分には意識することはないと思います # SSL server # nsCertType = server # object signingとして使用 # nsCertType = objsign # 通常のクライアント証明書の典型例 # nsCertType = client, email # object signingを加えた場合 # nsCertType = client, email, objsign # 鍵用途(keyUsage) # 次のようなものを記述することが可能 # # digitalSignature デジタル署名 # nonRepudiation 否認防止 # keyEncipherment 鍵配布 # dataEncipherment データ暗号化 # keyAgreement 鍵の検証 # keyCertSign 鍵署名 # cRLSign 証明書失効リスト(CRL)の検証 # encipherOnly 暗号化のみ # decipherOnly 復号化のみ keyUsage = nonRepudiation, digitalSignature, keyEncipherment # 拡張鍵用途(Extended Key Usage) # 次のようなものを記述することが可能 # 鍵用途(KeyUsage)と矛盾しないように注意する必要がある # ExtendedKeyUsageが設定され、かつ、serverAuthが設定されない証明書が # サーバ証明書に使われた場合、IEはSSL/TLSセッションを拒否する # # serverAuth TLS Webサーバ認証 # clientAuth TLS Webクライアント認証 # codeSigning コードサイニング # emailProtection 電子メールの保護(S/MIMEなど) # timeStamping タイムスタンプ # msSGC Microsoft Server Gated Crypto # nsSGC Netscape Server Gated Crypto # msSmartcardLogin Microsoft Smartcardlogin # サーバ証明書の典型例 #extendedKeyUsage = serverAuth, clientAuth, msSGC, nsSGC # クライアント証明書の典型例 # 古いopensslでは'msSmartcardLogin'が利用できない可能性があります extendedKeyUsage = clientAuth, emailProtection, msSmartcardLogin # Netscape commentリストボックスの表示 # 不自然なのでコメントアウト #nsComment = "OpenSSL Generated Certificate" # サブジェクト鍵識別子(subjectKeyIdentifier)および # 機関鍵識別子(authorityKeyIdentifier)情報 subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always # サブジェクト代替名称(SubjectAltName) # および発行人代替名称(IssuerAltName) # 次のものを含むことができます # # email rfc822Name RFC822メールアドレス # URI uniformResourceIdentifire ホームページなどのアドレス # DNS dNSName DNS名 # RID registerdID 登録済みのOID # IP iPAddress IPアドレス # dirName directoryName ディレクトリ名 # otherName otherName その他の拡張名 # # email:copyとすることで、DNのメールアドレスからコピーされます # dirNameとotherNameはopenssl 0.9.8からサポートされます # subjectAltName=email:copy # issuerAltName=issuer:copy # Netscape関連の設定 #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName # x509v3ではつぎの拡張項目も利用できる # privateKeyUsagePeriod : 秘密鍵有効期限 (RFC2459により非推奨) # certificatePolicies : 証明書ポリシー # crlDistributionPoints : CRL配布点 #################################################################### [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment #################################################################### [ v3_ca ] # reqに"-x509"オプションをつけることで自己署名証明書を発行する # 自己署名証明書の拡張はv3_caを参照する # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # 自己署名証明書をほかの証明書発行に利用する場合はCA:trueとなる # PKIXによると、ここは推奨値になっているが、挙動のおかしいソフトウェアでは # ここをcriticalにしているものもある #basicConstraints = critical,CA:true # 通常はcriticalでなくてもよい basicConstraints = CA:true # 典型的なCAとして使用する証明書の鍵用途です。 # 試験的に自己署名のサーバ証明書を発行する場合などでは、この設定が # 悪影響を及ぼすおそれがあります。 # keyUsage = cRLSign, keyCertSign # Netscape用の設定 # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # エキスパート用にDER hexエンコードで書くこともできます。 # obj=DER:02:03 # ここでの'obj'は標準オブジェクトでも追加オブジェクトでも可です # サポート済みのextentionにも次のように書くこともできます # basicConstraints= critical, DER:30:03:01:01:FF #################################################################### [ crl_ext ] # CRL(証明書失効リスト)の拡張 # issuerAltNameとauthorityKeyIdentifierのみ指定可能 # RFC2459ではもう少し拡張できるようです # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always