SSL用中間CA証明書の作成(Windows編)


おやじのBBSでbonduさんから中間CA証明書の作成方法に関するIBMのサイトの情報いただいたので、それを参考に中 間CA証明書の作成方法について整理してみました。中間CA証明書を作成する部分以外は、こちらのSSL用証明書の作成方法と同じです。

基本的な手順は以下のとおりです。
  1. プライベートのルートCAを作成する。
  2. 中間CA証明書作成用リクエストファイルを作成する。
  3. ルート認証局の証明書とキーを使って、リクエストファイルから中間CAの証明書の作成と署名を行う。
  4. サーバ証明書を作成するため、中間CAで署名するための環境を作成する。
  5. サーバ証明書作成用リクエストファイルを作成する。
  6. 中間CAの証明書とキーを使って、リクエストファイルからサーバ証明書の作成と署名を行う。

■事前準備

まずは、環境整備が必要です。こちらのSSL用証明書の作成方法を参考にopensslのインストールと 事前準備を行います。既に環境がある場合は、次に進んでください。

■プライベートルートCAの作成

続けて、認証の大元となるルート認証局(CA)を作成しますが、これもこちらのSSL用証明書の作成方法を参考に作成します。既に作成済みなら、 次に進んでください。

■中間CA証明書の作成

続いて、中間CA証明書を作成します。既に環境がありApache用のサーバ証明書を作成している場合は、まず下記でサーバ用証明 書等 をバックアップしておいてください。

C:\etc>md server
C:\etc>move *.pem server
C:\etc\newcert.pem
C:\etc\newkey.pem
C:\etc\newreq.pem

C:\etc>move *.crt server
C:\etc\server.crt


◆中間CA証明書作成用リクエストファイル(newreq.pem)の作成

ここでは、ルートCAに送るデジタル証明書のリクエストファイルを作成します。

C:\etc>CA.pl -newreq
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.........++++++
..............++++++
writing new private key to 'newkey.pem'
Enter PEM pass phrase:xxxxx[Enter]         ← 中間CA用パスフレーズ入力(画面上何も変化はないが処理されている)
Verifying - Enter PEM pass phrase:xxxxx[Enter] ← 中間CA用パスフレーズ再入力
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Country Name (2 letter code) [AU]:
JP[Enter] (国コード)
State or Province Name (full name) Some-State]:
Tokyo[Enter] (都道府県 名)
Locality Name (eg, city) []:
Edogawa[Enter] (市町村名)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Private_CA1[Enter] (組織名*)
Organizational Unit Name (eg, section) []:
Admin[Enter] (組織内ユ ニット名)
Common Name (eg, YOUR name) []:
Private_CA1[Enter] (組織/サーバ名)
Email Address []:
oyaji@mail.aconus.com[Enter] (管理者メー ルアドレス)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
[Enter]        ← Enterのみ入力
An optional company name []:
[Enter]      ← Enterのみ入力
Request is in newreq.pem, private key is in newkey.pem

      *: 組織名(ON)はルートCAとは異なる名前にすること。

◆中間CA証明書(newcert.pem)の作成

ルートCAの証明書とキーを使って、リクエストファイルから中間CAの証明書の作成と署名を行う。
C:\etc>CA.pl -signCA
Using configuration from C:\OpenSSL\bin\openssl.cnf
Loading 'screen' into random state - done
Enter pass phrase for ./demoCA/private/cakey.pem:
xxxxx[Enter]   ← ルートCA用パスフレーズ入力
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            f1:d4:c6:f4:2a:9b:48:2e
        Validity
            Not Before: Mar 19 13:24:51 2008 GMT
            Not After : Mar 19 13:24:51 2010 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Tokyo
            localityName              = Edogawa
            organizationName          = Private_CA1
            organizationalUnitName    = Admin
            commonName                = Private_CA1
            emailAddress              = oyaji@mail.aconus.com
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                06:A1:06:3F:6E:69:20:2F:05:08:30:80:38:F8:1A:0A:8F:EA:A4:C6
            X509v3 Authority Key Identifier:
                keyid:66:7B:3B:19:89:E0:C1:04:99:C9:98:79:E5:60:C7:0B:D1:D8:E5:BB
                DirName:/C=JP/ST=Tokyo/O=
Private_CA1/OU=Admin/CN=Private_CA1/emailAddress=oyaji@mail.aconus.com
                serial:F1:D4:C6:F4:2A:9B:48:2A

            X509v3 Basic Constraints:
                CA:TRUE
            Netscape Cert Type:
                SSL CA, S/MIME CA
Certificate is to be certified until Mar 19 13:24:51 2010 GMT (730 days)
Sign the certificate? [y/n]:
y[Enter]


1 out of 1 certificate requests certified, commit? [y/n]
y[Enter]
Write out database with 1 new entries
Data Base Updated
Signed CA certificate is in newcert.pem

以上で、中間CA証明書(newcert.pem)が作成されるので、中間CA証明書をブラウザにインポートするためのderファ イルを以 下で作成する。このca1.derファイルをこちらの手順で ブラウザの中間認証局にインポートする。もちろん、ルートCA証明書(ca.der)もインポートが必要である。

C:\etc>openssl x509 -inform pem -in newcert.pem -outform der -out ca1.der

Apacheで中間CAを使ってSSL化する場合は、後で作成するサーバキー、サーバ証明書とともに、ここで作成した中間証明書 (newcert.pem)を SSLCertificateChainFile ディレクティブで指定してください。 

■中間CA環境の作成

続いて、サーバ証明書を作成する場合に中間CAで署名するための環境を作成します。

  1. 現 在の環境を別ディレクトリ配下(ここでは C:\etc1 とする。)に全てコピーする。

    C:\etc>md ..\etc1

    C:\etc>xcopy * ..\etc1\ /i /s
    C:.rnd
    C:newcert.pem
    C:newkey.pem
    C:newreq.pem
    C:demoCA\ca.der
    C:demoCA\cacert.crt
    C:demoCA\cacert.pem
    C:demoCA\careq.pem
    C:demoCA\crlnumber
    C:demoCA\index.txt
    C:demoCA\index.txt.attr
    C:demoCA\serial
    C:demoCA\newcerts\F1D4C6F42A9B482A.pem
    C:demoCA\private\cakey.pem
    14 個のファイルをコピーしました



  2. 中 間CA用に作成した各ファイルをサーバ証明書等の署名で使用できるよう、CA用の各ファイルと置き換える。

    C:\etc>cd ..\etc1

    C:\etc1>move newreq.pem demoCA\careq.pem
    C:\etc1\demoCA\careq.pem を上書きしますか? (Yes/No/All): 
    y

    C:\etc1>move newkey.pem demoCA\private\cakey.pem
    C:\etc1\demoCA\private\cakey.pem を上書きしますか? (Yes/No/All): 
    y

    C:\etc1>move newcert.pem demoCA\cacert.pem
    C:\etc1\demoCA\cacert.pem を上書きしますか? (Yes/No/All): 
    y




以上で、C:\etc1配下に中間CAで各証明書を署名する環境ができあがったので、こちらを参考に サーバ証明書やクライアント用証明書を作成できます。




Top Pageへ