レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

プライベート認証局の証明書、サーバー証明書、クライアント証明書の作成方法について

2013年3月11日 2015年12月30日
openssl Certificate authority

このサイトでもSSL関連の記事も増えてきました。SSLを使うためには、SSL用の各証明書が必要になります。
その作成手順が、各ツールでバラバラなので、本来の openssl で提供されているシェルスクリプト CA (Debian系では、CA.sh) を使った以下の証明書の作成についてまとめてみました。

  • プライベート認証局証明書
  • サーバー証明書
  • クライアント証明書
この記事は、各ディストリビューションにて微妙な違いがあるので、それぞれについて記載しています。 そのため、かなりの量になってしまいました。 つきましては、必要に応じて以下のボタンにて、必要なディストリビューションのみを表示して、読みやすい形でご覧いただければと思います。

OpenSSLのインストールする

証明書を作成する上で、最低限必要なパッケージがOpenSSLです。少なくともOpenSSLがインストールされていなければ証明書作成などを含めて、SSLで必要な機能を利用することはできません。 既にインストール済の場合が多いと思いますが、確認も含めてインストール方法を記載しておきます。


CentOS,ScientificLinux
# OpenSSLがインストールされているか確認します。
$ rpm -qa|grep openssl

# OpenSSLがインストールされていないようなので、インストールします。
$ yum -y install openssl
...
Complete!

# 以下は、ちゃんとOpenSSLがインストールされたか再確認しています。
$ rpm -qa|grep openssl
openssl-1.0.0-25.el6_3.1.i686

# バージョン情報と環境を出力します。
$ openssl version -a
OpenSSL 1.0.0-fips 29 Mar 2010
built on: Thu Aug 23 04:52:49 UTC 2012
platform: linux-elf
options:  bn(64,32) md2(int) rc4(8x,mmx) des(ptr,risc1,16,long) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wa,--noexecstack -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  aesni dynamic

Debian,Ubuntu
# OpenSSLがインストールされているか確認します。
$ aptitude search openssl|grep 'i '

# OpenSSLがインストールされていないようなので、インストールします。
$ aptitude -y install openssl
...

# 以下は、ちゃんとOpenSSLがインストールされたか再確認しています。
$ aptitude search openssl|grep 'i '
i A openssl                         - Secure Socket Layer (SSL) バイナリおよび関

# バージョン情報と環境を出力します。
$ openssl version -a
OpenSSL 0.9.8o 01 Jun 2010
built on: Mon Feb 11 20:54:08 UTC 2013
platform: debian-amd64
options:  bn(64,64) md2(int) rc4(ptr,char) des(idx,cisc,16,int) blowfish(ptr2)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall -DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM
OPENSSLDIR: "/usr/lib/ssl"

opensslのバージョン情報で出力されるOPENSSLDIRが、OpenSSLのデフォルトのディレクトリになります。
OpenSSLでデフォルトで読み込まれる設定ファイルも OPENSSLDIR/openssl.cnf となります。

CentOS,ScientificLinux/etc/pki/tls/openssl.cnf

Debian,Ubuntu/usr/lib/ssl/openssl.cnf /etc/ssl/openssl.cnf(実体)
ただし、/usr/lib/ssl/openssl.cnf → /etc/ssl/openssl.cnf へのリンクとなっていますので、実質、読み込まれるのは、 /etc/ssl/openssl.cnfとなります。


証明書を作成する

サーバー証明書、クライアント証明書は、この認証局の署名が必要になります。
つまり、そのサーバー証明書が正しいものですよという電子署名が必要になるわけです。

この認証局には、いわゆる公に認められているパブリック認証局シマンテック・ノートンセキュリティ(旧日本ベリサイン) などが有名です)と 個人、法人などで勝手にSSLの技術を利用するために自前で認証局と同じ作業を行うプライベート認証局があります。

もちろん、パブリック認証局にて署名されたサーバー証明書であれば、ほとんどウェブブラウザが対応していますので、以下のような警告メッセージ(FireFoxの例)は表示されることはありません。
SSL警告

これが出ることで、やっぱり訪問者は、ちょっとびっくりしますし、通常なら、そのサイトを見るのはやめようと思うのが普通だと思います。これは、ショッピングサイトなどでは、致命的ですね。 そういったサイトでは、間違いなくパブリック認証局にて署名されたサーバー証明書を使うべきです。

逆に既知の人(例えば社員だけなど)だけに SSL接続させたい場合には、あえて費用をかけてパブリック認証局を利用しなくともプライベート認証局でも十分な場合があります。
既知の人であれば、サイトのSSL接続の前に、SSL接続する可能性のあるすべてにユーザに プライベート認証局の証明書を発行し、 各ユーザのウェブブラウザに認証局証明書としてインポートしてもらうことで先の警告メッセージは表示されなくなります。

その点も含めて以下にプライベート認証局からサーバー証明書、クライアント証明書までを簡単に解説してみます。

パブリック認証局で発行されているものは、年間使用量も馬鹿になりませんから、本当にネットショップなどで信用を保障しないといけない場合を除き、よく検討した上で契約しましょう。
参考記事 : SSL認証会社徹底比較

前準備

  1. 有効期限を設定できるようにCAスクリプトを編集する。

    CAスクリプトでは、デフォルトの設定でCA証明書の有効期限が3年に設定されています。そこで、自由に変更できるように、スクリプトを編集しておきます。
    各ディストリビューションでファイル名、パスが異なりますので注意してください。(編集内容、箇所は同じです。)


    CentOS,ScientificLinux → /etc/pki/tls/misc/CA
    Debian,Ubuntu → /usr/lib/ssl/misc/CA.sh

    63
    64
    65
    66
    67
    
    ...
    # 固定で3年になっているので、ここを編集します。
    #CADAYS="-days 1095"     # 3 years
    if [ -z "$CADAYS" ] ; then CADAYS="-days 1095" ; fi  # 3 years
    ...

  2. デフォルトのユーザ情報を編集する。

    以降、各証明書を作成する際に、いつも同じようなユーザ情報の問い合わせがあります。そこで、デフォルトのユーザ情報を設定しておくと、わざわざ入力する手間を省けます。 デフォルトのユーザ情報は、デフォルトのOpenSSLの設定ファイルへ設定します。
    各ディストリビューションでファイル名、パスが異なりますので注意してください。(編集内容、箇所は同じです。)


    CentOS,ScientificLinux → /etc/pki/tls/openssl.cnf
    Debian,Ubuntu → /usr/lib/ssl/openssl.cnf

    ...
    [ CA_default ]
    
    # CA のディレクトリをここでは、./CA とします。
    #dir            = ./demoCA              # Where everything is kept
    dir             = ./CA              # Where everything is kept
    ...
    [ req_distinguished_name ]
    countryName                     = Country Name (2 letter code)
    #countryName_default             = XX
    countryName_default             = JP # デフォルト国コード
    countryName_min                 = 2
    countryName_max                 = 2
    
    stateOrProvinceName             = State or Province Name (full name)
    #stateOrProvinceName_default    = Default Province
    stateOrProvinceName_default    = Tokyo # デフォルト都道府県
    
    localityName                    = Locality Name (eg, city)
    #localityName_default    = Default City
    localityName_default    = Setagaya # デフォルト市町村区
    
    0.organizationName              = Organization Name (eg, company)
    #0.organizationName_default      = Default Company Ltd
    0.organizationName_default      = example.com # デフォルト会社名 or ドメイン名
    
    # we can do this but it is not needed normally
    #1.organizationName             = Second Organization Name (eg, company)
    #1.organizationName_default     = World Wide Web Pty Ltd
    
    organizationalUnitName          = Organizational Unit Name (eg, section)
    #organizationalUnitName_default =
    
    commonName                      = Common Name (eg, your name or your server\'s hostname)
    commonName_max                  = 64
    
    emailAddress                    = Email Address
    emailAddress_max                = 64
    emailAddress_default            = webmaster@example.com # デフォルト管理者メールアドレス
    
    # SET-ex3                       = SET extension number 3
    ...
    [ tsa_config1 ]
    
    # These are used by the TSA reply generation only.
    # TSA のディレクトリをここでは、./CA とします。(ここでは関係ないが、変更だけしておく)
    #dir            = ./demoCA              # TSA root directory
    dir             = ./CA              # TSA root directory
    ...

    太字 箇所が編集箇所です。
    これを設定しておくと、あとの手順で毎回入力する手間が省けます。


  3. OpenSSLの設定ファイルを認証局用、サーバー用、クライアント用で準備する。

    先に編集したデフォルトのOpenSSLの設定ファイルをコピーして、認証局用、サーバー用、クライアント用として準備しておきます。
    以降、それぞれに作成する証明書用になります。


    CentOS,ScientificLinux → /etc/pki/tls/openssl.cnf
    $ cd /etc/pki/tls/
    
    # 認証局(CA)用として openssl-ca.cnf をコピーしておきます。
    [tls]$ cp openssl.cnf openssl-ca.cnf
    
    # サーバー用として openssl-server.cnf をコピーしておきます。
    [tls]$ cp openssl.cnf openssl-server.cnf
    
    # クライアント用として openssl-client.cnf をコピーしておきます。
    [tls]$ cp openssl.cnf openssl-client.cnf

    Debian,Ubuntu → /usr/lib/ssl/openssl.cnf/etc/ssl/openssl.cnf(実体)
    # デフォルトの設定ファイル(openssl.cnf) のリンク先ディレクトリへ移動します。
    $ cd /etc/ssl/
    
    # 認証局(CA)用として openssl-ca.cnf をコピーしておきます。
    [ssl]$ cp openssl.cnf openssl-ca.cnf
    
    # サーバー用として openssl-server.cnf をコピーしておきます。
    [ssl]$ cp openssl.cnf openssl-server.cnf
    
    # クライアント用として openssl-client.cnf をコピーしておきます。
    [ssl]$ cp openssl.cnf openssl-client.cnf

プライベート認証局のCA証明書を作成する。

まずは、認証局の証明書、鍵を作成します。

  1. 先に準備した 認証局用設定ファイル(openssl-ca.cnf)を編集します。

    各ディストリビューションでファイル名、パスが異なりますので注意してください。(編集内容、箇所は同じです。)


    CentOS,ScientificLinux → /etc/pki/tls/openssl-ca.cnf
    Debian,Ubuntu → /etc/ssl/openssl-ca.cnf

    [openssl-ca.cnf]

    ...
    [ usr_cert ]
    ...
    basicConstraints=CA:TRUE # デフォルトでCA証明書として使用します
    ...
    [ v3_ca ]
    ...
    nsCertType = sslCA, emailCA # デフォルトでSSL認証局、電子メール認証局とします
    ...

  2. プライベート認証局のCA証明書を作成します。

    各ディストリビューションでファイル名、パスが異なりますので最初のコマンドイメージだけ別に記載します。(以降の入力項目などはすべての同じです)
    また、起動前にコマンドラインから変数を設定しています。それぞれの変数は、以下のとおりです。

    • CADAYS=”-days 3650″:認証局の有効期限を10年としています。
    • SSLEAY_CONFIG=”-config /etc/…/openssl-ca.cnf”:使用する設定ファイルを指定しています。
    • CATOP=./CA:認証局ディレクトリを論理パスで指定しています。(CentOS,ScientificLinuxでは、/etc/pki/CA がデフォルトなので設定していません)
    CentOS,ScientificLinux
    # 新規にCA証明書を作成します。
    $ cd /etc/pki/tls/
    $ CADAYS="-days 3650" SSLEAY_CONFIG="-config /etc/pki/tls/openssl-ca.cnf" /etc/pki/tls/misc/CA -newca
    ...
    
    CA certificate filename (or enter to create)
    return
    Making CA certificate ...
    Generating a 2048 bit RSA private key
    .......................................+++
    ........+++
    writing new private key to '/etc/.../CA/private/./cakey.pem'
    Enter PEM pass phrase:return              # パスフレーズ(パスワード)を入力します。
    Verifying - Enter PEM pass phrase:return  # パスフレーズ(パスワード)を再入力します。
    -----
    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.
    -----
    # デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
    Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
    State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
    Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
    Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
    Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
    Common Name (eg, your name or your server's hostname) []:Private CAreturn  # CAの名前 : あなたの名前かサイト名
    Email Address [webmaster@example.com]:webmaster@example.comreturn         # 管理者メールアドレス
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:return        # そのままリターン
    An optional company name []:return    # そのままリターン
    Using configuration from /etc/.../openssl-ca.cnf
    Enter pass phrase for /etc/.../CA/private/./cakey.pem:return    # 先に入力したパスフレーズ(パスワード)を再入力
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number:
                d6:38:3b:73:e8:1d:0c:0b
            Validity
                Not Before: Feb 16 09:08:41 2015 GMT
                Not After : Feb 13 09:08:41 2025 GMT
            Subject:
                countryName               = JP
                stateOrProvinceName       = Tokyo
                organizationName          = example.com
                commonName                = Private CA
                emailAddress              = webmaster@example.com
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    FF:5F:89:2E:9C:87:0C:62:3E:67:5A:8E:20:BE:5E:C2:2E:5F:6E:AF
                X509v3 Authority Key Identifier:
                    keyid:FF:5F:89:2E:9C:87:0C:62:3E:67:5A:8E:20:BE:5E:C2:2E:5F:6E:AF
    
                X509v3 Basic Constraints:
                    CA:TRUE
                Netscape Cert Type:
                    SSL CA, S/MIME CA
    Certificate is to be certified until Feb 13 09:08:41 2025 GMT (3650 days)
    
    Write out database with 1 new entries
    Data Base Updated
    
    # ここで作成した認証局用の各ファイルを確認しておきます。
    $ ls -1 /etc/pki/CA/*
    /etc/pki/CA/cacert.pem      # CA証明書(CAのcakey.pem で署名した公開鍵)
    /etc/pki/CA/careq.pem       # CAのCSR (CAの自己署名する前の公開鍵)
    /etc/pki/CA/index.txt       # CA管理ファイル(証明書管理情報)
    /etc/pki/CA/index.txt.attr  # CA管理ファイル(属性)
    /etc/pki/CA/index.txt.old   # CA管理ファイル(一つ前)
    /etc/pki/CA/serial
    
    /etc/pki/CA/certs:          # 証明書ディレクトリ
    
    /etc/pki/CA/newcerts:       # 新しい証明書ディレクトリ
    C0DBFD1232845AA7.pem        # 新規に作成した証明書が、随時、作成されていきます。(ファイル名は、作成した時、環境によって異なる)
                                # このファイルは、./CA/cacert.pem と同じです。管理用なので特に意識する必要はありません、
    
    /etc/pki/CA/private:        # 秘密鍵ディレクトリ
    cakey.pem                   # CA秘密鍵
    
    Debian,Ubuntu
    # 新規にCA証明書を作成します。
    $ cd /etc/ssl/
    $ CADAYS="-days 3650" SSLEAY_CONFIG="-config /etc/ssl/openssl-ca.cnf" CATOP=./CA /usr/lib/ssl/misc/CA.sh -newca
    ...
    
    CA certificate filename (or enter to create)
    return
    Making CA certificate ...
    Generating a 2048 bit RSA private key
    .......................................+++
    ........+++
    writing new private key to '/etc/.../CA/private/./cakey.pem'
    Enter PEM pass phrase:return              # パスフレーズ(パスワード)を入力します。
    Verifying - Enter PEM pass phrase:return  # パスフレーズ(パスワード)を再入力します。
    -----
    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.
    -----
    # デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
    Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
    State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
    Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
    Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
    Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
    Common Name (eg, your name or your server's hostname) []:Private CAreturn  # CAの名前 : あなたの名前かサイト名
    Email Address [webmaster@example.com]:webmaster@example.comreturn         # 管理者メールアドレス
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:return        # そのままリターン
    An optional company name []:return    # そのままリターン
    Using configuration from /etc/.../openssl-ca.cnf
    Enter pass phrase for /etc/.../CA/private/./cakey.pem:return    # 先に入力したパスフレーズ(パスワード)を再入力
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number:
                d6:38:3b:73:e8:1d:0c:0b
            Validity
                Not Before: Feb 16 09:08:41 2015 GMT
                Not After : Feb 13 09:08:41 2025 GMT
            Subject:
                countryName               = JP
                stateOrProvinceName       = Tokyo
                organizationName          = example.com
                commonName                = Private CA
                emailAddress              = webmaster@example.com
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    FF:5F:89:2E:9C:87:0C:62:3E:67:5A:8E:20:BE:5E:C2:2E:5F:6E:AF
                X509v3 Authority Key Identifier:
                    keyid:FF:5F:89:2E:9C:87:0C:62:3E:67:5A:8E:20:BE:5E:C2:2E:5F:6E:AF
    
                X509v3 Basic Constraints:
                    CA:TRUE
                Netscape Cert Type:
                    SSL CA, S/MIME CA
    Certificate is to be certified until Feb 13 09:08:41 2025 GMT (3650 days)
    
    Write out database with 1 new entries
    Data Base Updated
    
    # ここで作成した認証局用の各ファイルを確認しておきます。
    $ ls -1 /etc/ssl/CA/*
    /etc/ssl/CA/cacert.pem      # CA証明書(CAのcakey.pem で署名した公開鍵)
    /etc/ssl/CA/careq.pem       # CAのCSR (CAの自己署名する前の公開鍵)
    /etc/ssl/CA/index.txt       # CA管理ファイル(証明書管理情報)
    /etc/ssl/CA/index.txt.attr  # CA管理ファイル(属性)
    /etc/ssl/CA/index.txt.old   # CA管理ファイル(一つ前)
    /etc/ssl/CA/serial
    
    /etc/ssl/CA/certs:          # 証明書ディレクトリ
    
    /etc/ssl/CA/newcerts:       # 新しい証明書ディレクトリ
    C0DBFD1232845AA7.pem        # 新規に作成した証明書が、随時、作成されていきます。(ファイル名は、作成した時、環境によって異なる)
                                # このファイルは、./CA/cacert.pem と同じです。管理用なので特に意識する必要はありません、
    
    /etc/ssl/CA/private:        # 秘密鍵ディレクトリ
    cakey.pem                   # CA秘密鍵
    
    以降の各サーバー証明書、クライアント証明書作成において、上記のCA証明書、CA秘密鍵ファイルが、デフォルトそのまま使用されますので、 ここで、正しく作成されていることを確認しておきましょう。

  3. 必要に応じてPEM形式の証明書を作成します。

    必要に応じて作成したCA証明書をPEM形式の証明書を作成します。
    また、ファイル名は capem.pem としておきます。
    (ウェブブラウザやメールクライアントソフトに認証局登録する際は、先に作成したCA証明書あるいは、ここで作成するPEM形式のCA証明書を使用します。)

    CentOS,ScientificLinux
    $ openssl x509 -in /etc/pki/CA/cacert.pem -outform PEM -out /etc/pki/CA/capem.pem
    Debian,Ubuntu
    $ openssl x509 -in /etc/ssl/CA/cacert.pem -outform PEM -out /etc/ssl/CA/capem.pem
    PEM とは、
    Privacy Enhanced Mail の略で、直訳すると “プライバシー強化メール” という感じでしょうか。
    単純に、PEMは、暗号化されたメールと思えば、概ね間違いではないと思います。
    ただ、ここで使っている PEM形式と言っているのは、そのメールの暗号化のための証明書の形式を言っているにすぎません。

    openssl のパラメータの簡単な解説を以下に記載しておきます。
    x509 : X.509形式の証明書を作成
    -outform PEM : PEM形式で出力

    メール(SendMailやPostfix,Dovecot など) では、サーバー証明書として、ここで作成したPEM形式のものを使うことになります。

CA証明書は、一般的に1サーバーに1回だけ作成します。
その認証局にて、サーバーやクライアント証明書を発行(作成)していくことになります。 ここの手順を、再度、実行した場合(CA証明書を再発行した場合)は、既に発行(作成)したサーバーやクライアント証明書も再発行となるので、注意しましょう。

サーバー用の証明書を作成する。

先に認証局の証明書、鍵が作成できたら、サーバー用の証明書を作成します。
サーバー用証明書は、ウェブサーバー用にもメールの送受信用にも使用できます。

  1. 先に準備した サーバー用設定ファイル(openssl-server.cnf)を編集します。

    各ディストリビューションでファイル名、パスが異なりますので注意してください。(編集内容、箇所は同じです。)


    CentOS,ScientificLinux → /etc/pki/tls/openssl-server.cnf
    Debian,Ubuntu → /etc/ssl/openssl-server.cnf

    [openssl-server.cnf]

    ...
    [ usr_cert ]
    ...
    basicConstraints=CA:FALSE # デフォルトでCA証明書として使用しません
    nsCertType = server # デフォルトでサーバー用証明書を作成します
    ...
    nsCertType(証明書のタイプ) の設定項目の意味を簡単に解説しておきます。
    server : 文字通りサーバーの意味。
    client : 文字通りクライアントの意味。
    email : 文字通りメールの意味。
    objsign : これは、ソフトウェアなどの署名に用いるものです。

    以降の認証局の署名を設定する際に使用されるデフォルトのCA証明書ファイル名を変更したい場合は、同ファイルの以下の項目を編集すると良いでしょう。

    [openssl-server.cnf]

    ...
    [ CA_default ]
    ...
    certificate	= $dir/cacert.pem 	 # デフォルトのCA証明書ファイル名
    ...
    private_key	= $dir/private/cakey.pem 	 # デフォルトのCA秘密鍵ファイル名
    ...
    ここは、ここでの手順どおりであれば、何も編集する必要はないでしょう。

  2. サーバー用の証明書を作成します。

    各ディストリビューションでファイル名、パスが異なりますので最初のコマンドイメージだけ別に記載します。(以降の入力項目などはすべての同じです)
    また、起動前にコマンドラインから変数を設定しています。それぞれの変数は、以下のとおりです。

    • DAYS=”-days 3650″:証明書の有効期限を10年としています。
    • SSLEAY_CONFIG=”-config /etc/…/openssl-server.cnf”:使用する設定ファイルを指定しています。
    • CATOP=./CA:認証局ディレクトリを論理パスで指定しています。(CentOS,ScientificLinuxでは、/etc/pki/CA がデフォルトなので設定していません)

    新規にサーバー証明書を作成します。#1

    CentOS,ScientificLinux
    # 新規にサーバー証明書を作成します。
    $ cd /etc/pki/tls/
    $ DAYS="-days 3650" SSLEAY_CONFIG="-config /etc/pki/tls/openssl-server.cnf" /etc/pki/tls/misc/CA -newreq
    ...
    Generating a 2048 bit RSA private key
    ......+++
    ..........+++
    writing new private key to 'newkey.pem'
    Enter PEM pass phrase:return              # サーバー用のパスフレーズ(パスワード)を入力します。
    Verifying - Enter PEM pass phrase:return  # サーバー用のパスフレーズ(パスワード)を再入力します。
    -----
    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.
    -----
    # デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
    Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
    State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
    Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
    Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
    Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
    Common Name (eg, your name or your server's hostname) []:www.exmple.comreturn  # サイト名--ウェブサーバーで利用する場合は必ずここをサイト名に合わせる
    Email Address [webmaster@example.com]:webmaster@example.comreturn         # 管理者メールアドレス
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:return        # そのままリターン
    An optional company name []:return    # そのままリターン
    Request is in newreq.pem, private key is in newkey.pem
    
    # ここで作成したウェブサーバー用の各ファイルは、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newkey.pem  # サイト用秘密鍵
    newreq.pem  # サイト用公開鍵-署名なし(CSR)
    ...
    
    Debian,Ubuntu
    # 新規にサーバー証明書を作成します。
    $ cd /etc/ssl/
    $ DAYS="-days 3650" SSLEAY_CONFIG="-config /etc/ssl/openssl-server.cnf" CATOP=./CA /usr/lib/ssl/misc/CA.sh -newreq
    ...
    Generating a 2048 bit RSA private key
    ......+++
    ..........+++
    writing new private key to 'newkey.pem'
    Enter PEM pass phrase:return              # サーバー用のパスフレーズ(パスワード)を入力します。
    Verifying - Enter PEM pass phrase:return  # サーバー用のパスフレーズ(パスワード)を再入力します。
    -----
    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.
    -----
    # デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
    Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
    State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
    Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
    Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
    Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
    Common Name (eg, your name or your server's hostname) []:www.exmple.comreturn  # サイト名--ウェブサーバーで利用する場合は必ずここをサイト名に合わせる
    Email Address [webmaster@example.com]:webmaster@example.comreturn         # 管理者メールアドレス
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:return        # そのままリターン
    An optional company name []:return    # そのままリターン
    Request is in newreq.pem, private key is in newkey.pem
    
    # ここで作成したウェブサーバー用の各ファイルは、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newkey.pem  # サイト用秘密鍵
    newreq.pem  # サイト用公開鍵-署名なし(CSR)
    ...
    
    ここでは、認証したいサーバー名を Common Name で指定します。このサーバー名を間違えると、サーバーが違うので、証明書として意味がなくなります。十分注意しましょう

  3. 認証局の署名を入れたサーバー証明書を作成します。

    各ディストリビューションでファイル名、パスが異なりますので最初のコマンドイメージだけ別に記載します。(以降の入力項目などはすべての同じです)
    また、起動前にコマンドラインから変数を設定しています。それぞれの変数は、以下のとおりです。

    • SSLEAY_CONFIG=”-config /etc/…/openssl-server.cnf”:使用する設定ファイルを指定しています。
    • CATOP=./CA:認証局ディレクトリを論理パスで指定しています。(CentOS,ScientificLinuxでは、/etc/pki/CA がデフォルトなので設定していません)

    CentOS,ScientificLinux
    # 次に認証局の署名を入れたサーバー証明書を作成します。
    $ cd /etc/pki/tls/
    $ SSLEAY_CONFIG="-config /etc/pki/tls/openssl-server.cnf" /etc/pki/tls/misc/CA -sign
    ...
    Using configuration from /etc/.../openssl.cnf
    Enter pass phrase for /etc/.../CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject:
                countryName               = JP
                stateOrProvinceName       = Tokyo
                localityName              = Setagaya
                organizationName          = example.com
                commonName                = 192.168.1.99
                emailAddress              = webmaster@example.com
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:  ...
                X509v3 Authority Key Identifier:
                    keyid:8A: ...
    
    Certificate is to be certified until Nov 19 19:43:12 2013 GMT (3650 days)
    Sign the certificate? [y/n]:yreturn    # yを入力しリターン
    
    
    1 out of 1 certificate requests certified, commit? [y/n]yreturn      # yを入力しリターン
    Write out database with 1 new entries
    Data Base Updated
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=JP, ST=Tokyo, O=example.com, CN=Private CA/emailAddress=webmaster@example.com
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject: C=JP, ST=Tokyo, L=Setagaya, O=example.com, CN=www.example.com/emailAddress=webmaster@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ab:57:e2:10:35:e1:54:0e:93:be: ...
                        ...
                        53:2f
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:23:33:A0:8E:BC:C2:E4:E1:69:B0:4C:B6:81:89:99:FE:62:3E:76
                X509v3 Authority Key Identifier:
                    keyid:8A:3A:EF:15:39:09:6B:5E:07:F5:E5:4B:FB:19:F9:00:D6:E3:82:EA
    
        Signature Algorithm: sha1WithRSAEncryption
            90:66:90:e1:47:3f:da:00:08:68:8d:97 ...
            ...
            (省略)
            ...
            a5:2d:c6:95
    -----BEGIN CERTIFICATE-----
    MIID8DCCAtigAwIBAgIJALe+gV7WQ2OyMA0GCSqGSIb3DQEB ...
    ...
    pS3GlQ==
    -----END CERTIFICATE-----
    Signed certificate is in newcert.pem
    
    # ここで作成したウェブサーバー用のサーバー証明書は、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newcert.pem # サーバー証明書(プライベート認証局の署名入り)
    ...
    
    Debian,Ubuntu
    # 次に認証局の署名を入れたサーバー証明書を作成します。
    $ cd /etc/ssl/
    $ SSLEAY_CONFIG="-config /etc/ssl/openssl-server.cnf" CATOP=./CA /usr/lib/ssl/misc/CA.sh -sign
    ...
    Using configuration from /etc/.../openssl.cnf
    Enter pass phrase for /etc/.../CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject:
                countryName               = JP
                stateOrProvinceName       = Tokyo
                localityName              = Setagaya
                organizationName          = example.com
                commonName                = 192.168.1.99
                emailAddress              = webmaster@example.com
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:  ...
                X509v3 Authority Key Identifier:
                    keyid:8A: ...
    
    Certificate is to be certified until Nov 19 19:43:12 2013 GMT (3650 days)
    Sign the certificate? [y/n]:yreturn    # yを入力しリターン
    
    
    1 out of 1 certificate requests certified, commit? [y/n]yreturn      # yを入力しリターン
    Write out database with 1 new entries
    Data Base Updated
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=JP, ST=Tokyo, O=example.com, CN=Private CA/emailAddress=webmaster@example.com
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject: C=JP, ST=Tokyo, L=Setagaya, O=example.com, CN=www.example.com/emailAddress=webmaster@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ab:57:e2:10:35:e1:54:0e:93:be: ...
                        ...
                        53:2f
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:23:33:A0:8E:BC:C2:E4:E1:69:B0:4C:B6:81:89:99:FE:62:3E:76
                X509v3 Authority Key Identifier:
                    keyid:8A:3A:EF:15:39:09:6B:5E:07:F5:E5:4B:FB:19:F9:00:D6:E3:82:EA
    
        Signature Algorithm: sha1WithRSAEncryption
            90:66:90:e1:47:3f:da:00:08:68:8d:97 ...
            ...
            (省略)
            ...
            a5:2d:c6:95
    -----BEGIN CERTIFICATE-----
    MIID8DCCAtigAwIBAgIJALe+gV7WQ2OyMA0GCSqGSIb3DQEB ...
    ...
    pS3GlQ==
    -----END CERTIFICATE-----
    Signed certificate is in newcert.pem
    
    # ここで作成したウェブサーバー用のサーバー証明書は、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newcert.pem # サーバー証明書(プライベート認証局の署名入り)
    ...
    

  4. 作成したサーバー用証明書を移動します。

    作成したサーバー用証明書をわかりやすいように認証局(CA)管理下のディレクトリへ移動します。
    また、移動する際に、名前を サーバー名.crt (上記で証明書を作成した際にCommon Nameで指定したサーバー名) へ変更しておきます。
    各ディストリビューションでファイル名、パスが異なりますので注意してください。

    CentOS,ScientificLinux
    $ mv /etc/pki/tls/newcert.pem /etc/pki/CA/certs/www.example.com.crt
    Debian,Ubuntu
    $ mv /etc/ssl/newcert.pem /etc/ssl/CA/certs/www.example.com.crt

  5. 必要に応じてPEM形式の証明書を作成します。

    必要に応じて作成したサーバー証明書をPEM形式の証明書を作成します。
    また、ファイル名は サーバー名.pem (上記で証明書を作成した際にCommon Nameで指定したサーバー名) としておきます。
    (メール関連で証明書を利用する場合は、PEM形式を使用します。)

    CentOS,ScientificLinux
    $ openssl x509 -in /etc/pki/CA/certs/www.example.com.crt -outform PEM -out /etc/pki/CA/certs/www.example.com.pem
    Debian,Ubuntu
    $ openssl x509 -in /etc/ssl/CA/certs/www.example.com.crt -outform PEM -out /etc/ssl/CA/certs/www.example.com.pem

  6. 作成したサーバー用秘密鍵へパスフレーズを埋め込みます。

    ここまでで、サーバー用秘密鍵には、パスフレーズ(パスワード)でロックされています。
    このパスフレーズ(パスワード)を認証などの際に入力を求められることがあります。その場合、認証がうまくいかない場合もあります。
    ここでは、そのパスフレーズを秘密鍵に埋め込むことで、使用する際にパスフレーズを入力しないで使えるようにします。

    また、その際、わかりやすいように認証局(CA)管理下のディレクトリへ移動し、名前を サーバー名.key (上記で証明書を作成した際にCommon Nameで指定したサーバー名) へ変更しておきます。
    各ディストリビューションでファイル名、パスが異なりますので注意してください。

    CentOS,ScientificLinux
    
    $ openssl rsa -in /etc/pki/tls/newkey.pem -out /etc/pki/CA/private/www.example.com.key
    ...
    Enter pass phrase for newkey.pem:return  # サーバー証明書、秘密鍵を作成したときのパスフレーズを入力する
    writing RSA key
    
    Debian,Ubuntu
    
    $ openssl rsa -in /etc/ssl/newkey.pem -out /etc/ssl/CA/private/www.example.com.key
    ...
    Enter pass phrase for newkey.pem:return  # サーバー証明書、秘密鍵を作成したときのパスフレーズを入力する
    writing RSA key
    
    サーバー用秘密鍵のパスフレーズ(パスワード)を埋め込んだ秘密鍵を作成しない場合、apacheを起動したときにサーバー鍵を作成した時のパスフレーズの入力を求められます。
    $ /etc/init.d/httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog)
    Some of your private key files are encrypted for security reasons.
    In order to read them you have to provide the pass phrases.
    
    Server www.example.com:443 (RSA)
    Enter pass phrase:return  # サーバー鍵を作成したときのパスフレーズを入力する
    
    OK: Pass Phrase Dialog successful.
                                                               [  OK  ]
    
    これを回避するためにも先のパスフレーズを埋め込んで解除します。

クライアント用の証明書を作成する。

先に認証局の証明書、鍵が作成できたら、クライアント用の証明書を作成します。
クライアント用証明書は、各クライアントが認証用に使うことができる証明書で各クライアントPCのツールに証明書をインストールするとパスワードなしでもよりセキュアな認証ができるようになります。

  1. 先に準備した クライアント用設定ファイル(openssl-client.cnf)を編集します。

    各ディストリビューションでファイル名、パスが異なりますので注意してください。(編集内容、箇所は同じです。)


    CentOS,ScientificLinux → /etc/pki/tls/openssl-client.cnf
    Debian,Ubuntu → /etc/ssl/openssl-client.cnf

    [openssl-client.cnf]

    ...
    [ usr_cert ]
    ...
    basicConstraints=CA:FALSE # デフォルトでCA証明書として使用しません
    nsCertType = client, email, objsign # デフォルトでクライアント用証明書を作成します
    ...
    nsCertType(証明書のタイプ) の設定項目の意味を簡単に解説しておきます。
    server : 文字通りサーバーの意味。
    client : 文字通りクライアントの意味。
    email : 文字通りメールの意味。
    objsign : これは、ソフトウェアなどの署名に用いるものです。

    また、以降の認証局の署名を設定する際に使用されるデフォルトのCA証明書ファイル名を変更したい場合は、同ファイルの以下の項目を編集すると良いでしょう。

    [openssl-server.cnf]

    ...
    [ CA_default ]
    ...
    certificate	= $dir/cacert.pem 	 # デフォルトのCA証明書ファイル名
    ...
    private_key	= $dir/private/cakey.pem 	 # デフォルトのCA秘密鍵ファイル名
    ...
    ここは、ここでの手順どおりであれば、何も編集する必要はないでしょう。

  2. クライアント用の証明書を作成します。

    各ディストリビューションでファイル名、パスが異なりますので最初のコマンドイメージだけ別に記載します。(以降の入力項目などはすべての同じです)
    また、起動前にコマンドラインから変数を設定しています。それぞれの変数は、以下のとおりです。

    • DAYS=”-days 3650″:証明書の有効期限を10年としています。
    • SSLEAY_CONFIG=”-config /etc/…/openssl-client.cnf”:使用する設定ファイルを指定しています。
    • CATOP=./CA:認証局ディレクトリを論理パスで指定しています。(CentOS,ScientificLinuxでは、/etc/pki/CA がデフォルトなので設定していません)
    CentOS,ScientificLinux
    # 新規にクライアント証明書を作成します。
    $ cd /etc/pki/tls/
    $ DAYS="-days 3650" SSLEAY_CONFIG="-config /etc/pki/tls/openssl-client.cnf" /etc/pki/tls/misc/CA -newreq
    ...
    
    Generating a 2048 bit RSA private key
    ......+++
    ..........+++
    writing new private key to 'newkey.pem'
    Enter PEM pass phrase:return              # クライアント用のパスフレーズ(パスワード)を入力します。
    Verifying - Enter PEM pass phrase:return  # クライアント用のパスフレーズ(パスワード)を再入力します。
    -----
    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.
    -----
    # デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
    Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
    State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
    Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
    Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
    Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
    Common Name (eg, your name or your server's hostname) []:Taro Yamadareturn  # クライアント名
    Email Address [webmaster@example.com]:taro.yamada@example.comreturn         # メールアドレス
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:return        # そのままリターン
    An optional company name []:return    # そのままリターン
    Request is in newreq.pem, private key is in newkey.pem
    
    # ここで作成したウェブクライアント用の各ファイルは、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newkey.pem  # クライアント用秘密鍵
    newreq.pem  # クライアント用公開鍵-署名なし(CSR)
    ...
    
    Debian,Ubuntu
    # 新規にクライアント証明書を作成します。
    $ cd /etc/ssl/
    $ DAYS="-days 3650" SSLEAY_CONFIG="-config /etc/ssl/openssl-client.cnf" CATOP=./CA /usr/lib/ssl/misc/CA.sh -newreq
    ...
    
    Generating a 2048 bit RSA private key
    ......+++
    ..........+++
    writing new private key to 'newkey.pem'
    Enter PEM pass phrase:return              # クライアント用のパスフレーズ(パスワード)を入力します。
    Verifying - Enter PEM pass phrase:return  # クライアント用のパスフレーズ(パスワード)を再入力します。
    -----
    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.
    -----
    # デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
    Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
    State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
    Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
    Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
    Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
    Common Name (eg, your name or your server's hostname) []:Taro Yamadareturn  # クライアント名
    Email Address [webmaster@example.com]:taro.yamada@example.comreturn         # メールアドレス
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:return        # そのままリターン
    An optional company name []:return    # そのままリターン
    Request is in newreq.pem, private key is in newkey.pem
    
    # ここで作成したウェブクライアント用の各ファイルは、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newkey.pem  # クライアント用秘密鍵
    newreq.pem  # クライアント用公開鍵-署名なし(CSR)
    ...
    
    ここでは、認証したいクライアント名を Common Name で指定します。

  3. 認証局の署名を入れたクライアント証明書を作成します。

    各ディストリビューションでファイル名、パスが異なりますので最初のコマンドイメージだけ別に記載します。(以降の入力項目などはすべての同じです)
    また、起動前にコマンドラインから変数を設定しています。それぞれの変数は、以下のとおりです。

    • SSLEAY_CONFIG=”-config /etc/…/openssl-client.cnf”:使用する設定ファイルを指定しています。
    • CATOP=./CA:認証局ディレクトリを論理パスで指定しています。(CentOS,ScientificLinuxでは、/etc/pki/CA がデフォルトなので設定していません)

    CentOS,ScientificLinux
    # 次に認証局の署名を入れたクライアント証明書を作成します。
    $ cd /etc/pki/tls/
    $ SSLEAY_CONFIG="-config /etc/pki/tls/openssl-client.cnf" /etc/pki/tls/misc/CA -sign
    ...
    
    Using configuration from /etc/.../openssl.cnf
    Enter pass phrase for /etc/.../CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject:
                countryName               = JP
                stateOrProvinceName       = Tokyo
                localityName              = Setagaya
                organizationName          = example.com
                commonName                = 192.168.1.99
                emailAddress              = webmaster@example.com
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:  ...
                X509v3 Authority Key Identifier:
                    keyid:8A: ...
    
    Certificate is to be certified until Nov 19 19:43:12 2013 GMT (3650 days)
    Sign the certificate? [y/n]:yreturn    # yを入力しリターン
    
    
    1 out of 1 certificate requests certified, commit? [y/n]yreturn      # yを入力しリターン
    Write out database with 1 new entries
    Data Base Updated
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=JP, ST=Tokyo, O=example.com, CN=Private CA/emailAddress=webmaster@example.com
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject: C=JP, ST=Tokyo, L=Setagaya, O=example.com, CN=www.example.com/emailAddress=webmaster@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ab:57:e2:10:35:e1:54:0e:93:be: ...
                        ...
                        53:2f
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:23:33:A0:8E:BC:C2:E4:E1:69:B0:4C:B6:81:89:99:FE:62:3E:76
                X509v3 Authority Key Identifier:
                    keyid:8A:3A:EF:15:39:09:6B:5E:07:F5:E5:4B:FB:19:F9:00:D6:E3:82:EA
    
        Signature Algorithm: sha1WithRSAEncryption
            90:66:90:e1:47:3f:da:00:08:68:8d:97 ...
            ...
            a5:2d:c6:95
    -----BEGIN CERTIFICATE-----
    MIID8DCCAtigAwIBAgIJALe+gV7WQ2OyMA0GCSqGSIb3DQEB ...
    ...
    pS3GlQ==
    -----END CERTIFICATE-----
    Signed certificate is in newcert.pem
    
    # ここで作成したウェブクライアント用のクライアント証明書は、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newcert.pem # クライアント証明書(プライベート認証局の署名入り)
    ...
    Debian,Ubuntu
    # 次に認証局の署名を入れたクライアント証明書を作成します。
    $ cd /etc/ssl/
    $ SSLEAY_CONFIG="-config /etc/ssl/openssl-client.cnf" CATOP=./CA /usr/lib/ssl/misc/CA.sh -sign
    ...
    
    Using configuration from /etc/.../openssl.cnf
    Enter pass phrase for /etc/.../CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject:
                countryName               = JP
                stateOrProvinceName       = Tokyo
                localityName              = Setagaya
                organizationName          = example.com
                commonName                = 192.168.1.99
                emailAddress              = webmaster@example.com
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:  ...
                X509v3 Authority Key Identifier:
                    keyid:8A: ...
    
    Certificate is to be certified until Nov 19 19:43:12 2013 GMT (3650 days)
    Sign the certificate? [y/n]:yreturn    # yを入力しリターン
    
    
    1 out of 1 certificate requests certified, commit? [y/n]yreturn      # yを入力しリターン
    Write out database with 1 new entries
    Data Base Updated
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                b7:be:81:5e:d6:43:63:b2
            Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=JP, ST=Tokyo, O=example.com, CN=Private CA/emailAddress=webmaster@example.com
            Validity
                Not Before: Nov 19 19:43:12 2012 GMT
                Not After : Nov 19 19:43:12 2013 GMT
            Subject: C=JP, ST=Tokyo, L=Setagaya, O=example.com, CN=www.example.com/emailAddress=webmaster@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ab:57:e2:10:35:e1:54:0e:93:be: ...
                        ...
                        53:2f
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    4A:23:33:A0:8E:BC:C2:E4:E1:69:B0:4C:B6:81:89:99:FE:62:3E:76
                X509v3 Authority Key Identifier:
                    keyid:8A:3A:EF:15:39:09:6B:5E:07:F5:E5:4B:FB:19:F9:00:D6:E3:82:EA
    
        Signature Algorithm: sha1WithRSAEncryption
            90:66:90:e1:47:3f:da:00:08:68:8d:97 ...
            ...
            a5:2d:c6:95
    -----BEGIN CERTIFICATE-----
    MIID8DCCAtigAwIBAgIJALe+gV7WQ2OyMA0GCSqGSIb3DQEB ...
    ...
    pS3GlQ==
    -----END CERTIFICATE-----
    Signed certificate is in newcert.pem
    
    # ここで作成したウェブクライアント用のクライアント証明書は、カレントディレクトリに以下のように作成されます。
    $ ls -1
    ...
    newcert.pem # クライアント証明書(プライベート認証局の署名入り)
    ...

  4. 作成したクライアント用証明書、秘密鍵をPKCS#12フォーマットに変換します。

    クライアント側では、証明書と秘密鍵を1つのファイルにまとめたPKCS#12フォーマットが主に用いられます。 そのため、ここで、クライアント用証明書、秘密鍵からPKCS#12フォーマットのファイルを作成します。

    クライアント用証明書、秘密鍵からPKCS#12フォーマットのファイルを作成します。#1

    CentOS,ScientificLinux
    $ cd /etc/pki/tls/
    Debian,Ubuntu
    $ cd /etc/ssl/

    クライアント用証明書、秘密鍵からPKCS#12フォーマットのファイルを作成します。#2 (共通)

    
    $ openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -out taro.yamada.example.com.pfx
    
    Enter pass phrase for newkey.pem:return    # クライアント証明書を作成した時のパスフレーズ
    Enter Export Password:return               # ここで作成したPCL12ファイルを展開(読み込む)するためのパスフレーズ 
    Verifying - Enter Export Password:return   # --再入力
    

  5. (必要に応じて)作成したクライアント用証明書、秘密鍵をバックアップしておきます。

    (必要に応じて)作成したクライアント用証明書、秘密鍵をわかりやすいように認証局(CA)管理下のディレクトリへバックアップしておきます。
    また、移動する際に、名前を クライアント名.crt クライアント名.key へそれぞれ変更しておきます。
    各ディストリビューションでファイル名、パスが異なりますので注意してください。

    CentOS,ScientificLinux
    $ mv /etc/pki/tls/newcert.pem /etc/pki/CA/client/certs/taro.yamada.example.com.crt
    $ mv /etc/pki/tls/newkey.pem /etc/pki/CA/client/private/taro.yamada.example.com.key
    $ mv /etc/pki/tls/taro.yamada.example.com.pfx /etc/pki/CA/client/private/taro.yamada.example.com.pfx
    Debian,Ubuntu
    $ mv /etc/ssl/newcert.pem /etc/ssl/CA/client/certs/taro.yamada.example.com.crt
    $ mv /etc/ssl/newkey.pem /etc/ssl/CA/client/private/taro.yamada.example.com.key
    $ mv /etc/ssl/taro.yamada.example.com.pfx /etc/ssl/CA/client/private/taro.yamada.example.com.pfx
    少なくとも証明書を失効するために証明書は必要になります。 秘密鍵、PKCS#12フォーマットファイルについては、必要ないでしょう。 使うとしたら、PKCS#12フォーマットファイルの再発行となるのでしょうが、その場合は、一旦、先の証明書を失効して、再発行する方が安全ですし、おすすめです。 そうなると秘密鍵のバックアップは、ほとんど意味がないはずです。

  6. 必要に応じてPEM形式の証明書を作成します。

    必要に応じて作成したクライアント証明書をPEM形式の証明書を作成します。

    CentOS,ScientificLinux
    $ openssl x509 -in /etc/pki/CA/certs/taro.yamada.example.com.crt -outform PEM -out /etc/pki/CA/certs/taro.yamada.example.com.crt.pem
    Debian,Ubuntu
    $ openssl x509 -in /etc/ssl/CA/certs/taro.yamada.example.com.crt -outform PEM -out /etc/ssl/CA/certs/taro.yamada.example.com.crt.pem

ここでは、管理する上で、クライアント証明書、秘密鍵をCA管理下のディレクトリへ配置しました。 これらのファイルは、文字通りクライアントとなる各ユーザへ配布するものとなります。 せっかくのセキュリティアップのためのファイルですので、これが漏れる(コピーされる)ようでは、元も子もありません。 十分、注意して配布する必要があります。

また、対象となるクライアントへ配布した証明書を無効にするためのに、必ず、サーバー側でも管理しておく必要があります。

各証明書を失効する。

サーバー証明書、クライアント証明書の失効はよくあることです。 各証明書の失効は、以下のように行います。

CentOS,ScientificLinux

$ openssl ca -gencrl -revoke  /etc/pki/CA/certs/www.example.com.crt -config /etc/pki/tls/openssl-server.cnf
...
Using configuration from /.../openssl.cnf
Enter pass phrase for ./CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する
...
Data Base Updated
Debian,Ubuntu

$ openssl ca -gencrl -revoke  /etc/ssl/CA/certs/www.example.com.crt -config /etc/ssl/openssl-server.cnf
...
Using configuration from /.../openssl.cnf
Enter pass phrase for ./CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する
...
Data Base Updated
出力情報として失効リスト情報が必要な場合は、以下のように -outオプション+出力ファイル名を指定することで 失効リスト情報を同時に出力することができます。
 -out revoke.crl
また、後でいつでも 以下のようにすれば 失効リスト情報は出力できます。
$ openssl ca -gencrl -out revoke.crl
また、失効リスト情報は以下のようにダンプして確認することができます。
$ openssl crl -in revoke.crl -text
Certificate Revocation List (CRL):
        Version 2 (0x1)
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: /C=JP/ST=Tokyo/O=Setagayaku/CN=example.com/emailAddress=webmaster@example.com
        Last Update: Mar  9 19:02:41 2013 GMT
        Next Update: Apr  8 19:02:41 2013 GMT
        CRL extensions:
            X509v3 CRL Number:
                6
Revoked Certificates:
    Serial Number: C33C3E930A360142
        Revocation Date: Mar  9 18:52:42 2013 GMT
    Serial Number: C33C3E930A360143
        Revocation Date: Mar  9 18:54:44 2013 GMT
    Serial Number: C33C3E930A360144
        Revocation Date: Mar  9 19:00:32 2013 GMT
    Signature Algorithm: sha1WithRSAEncryption
        48:ad:86:ad:5c:1b:f9:de:5d:1e:a5:29:64:7f:50:e8:92:a2:
        ...
        f7:15:af:6b
-----BEGIN X509 CRL-----
MIICGjCCAQICAQEwDQYJKoZIhvcNAQEFBQAwajELMAkGA1UEBhMCSlAxEDAOBgNV
...
ZvJ8GR3ett30//cVr2s=
-----END X509 CRL-----
上記のように失効されたシリアル番号がリスト表示されます。

失効する際に、以下のようなエラーメッセージが出力されることがあります。
...
error while loading CRL number
16873:error:02001002:system library:fopen:No such file or directory:bss_file.c:356:fopen('./CA/crlnumber','r')
16873:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:358:
...
これは、./CA/crlnumber というファイルが存在しないというエラーなのですが、なぜか初期設定時に作成されていないのか、 作成されていない場合の対応漏れなのか、うまく動いてくれません。
そこで、とりあえずの対処として、./CA/crlnumber というファイルを作成すればうまくいきます。
CentOS,ScientificLinux
$ echo '00' > /etc/pki/CA/crlnumber 
Debian,Ubuntu
$ echo '00' > /etc/ssl/CA/crlnumber 

期限切れ証明書を失効する。

サーバー証明書、クライアント証明書の期限切れとなった場合は、自動的に失効するわけではありません。 あくまで、以下のようにopesslを実行して、更新作業が必要になります。


$ openssl ca -updatedb -config openssl-ca.cnf
Using configuration from openssl-ca.cnf
Enter pass phrase for /etc/.../CA/private/cakey.pem:return  # CA証明書を作成する際に設定したパスフレーズ(パスワード)を入力する

認証局の有効期限を更新する。

サーバー、クライアントの証明書に関しては、有効期限が切れたら、失効、再発行の手順で行います。
認証局の場合に限っては、更新作業を行います。
もちろん、更新したからといっても新しい認証局の証明書を再配布する必要はあります。


以下に、現在の証局の有効期限を確認し、10年まで期限を延ばしてみます。

CentOS,ScientificLinux
# 認証局の有効期限を確認します。
$ openssl x509 -inform PEM -in /etc/pki/CA/cacert.pem -noout -text
...
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            c3:3c:3e:93:0a:36:01:41
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, O=Setagayaku, CN=example.com/emailAddress=webmaster@example.com
        Validity
            Not Before: Mar  9 18:46:37 2013 GMT
            Not After : Mar  8 18:46:37 2016 GMT
    ...

# これを、10年まで引き延ばしてみます。
$ openssl req -new -x509 -days 3650 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -config openssl-ca.cnf
...
-----
# 更新前と同じ情報を入力します。
# デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
Common Name (eg, your name or your server's hostname) []:Private CAreturn  # CAの名前 : あなたの名前かサイト名
Email Address [webmaster@example.com]:webmaster@example.comreturn         # 管理者メールアドレス

# 認証局の有効期限を再確認します。
$ openssl x509 -inform PEM -in /etc/pki/CA/cacert.pem -noout -text
...
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            c3:3c:3e:93:0a:36:01:41
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, O=Setagayaku, CN=example.com/emailAddress=webmaster@example.com
        Validity
            Not Before: Mar  9 19:50:45 2013 GMT
            Not After : Mar  7 19:50:45 2023 GMT
    ...

Debian,Ubuntu
# 認証局の有効期限を確認します。
$ openssl x509 -inform PEM -in /etc/ssl/CA/cacert.pem -noout -text
...
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            c3:3c:3e:93:0a:36:01:41
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, O=Setagayaku, CN=example.com/emailAddress=webmaster@example.com
        Validity
            Not Before: Mar  9 18:46:37 2013 GMT
            Not After : Mar  8 18:46:37 2016 GMT
    ...

# これを、10年まで引き延ばしてみます。
$ openssl req -new -x509 -days 3650 -key /etc/ssl/CA/private/cakey.pem -out /etc/ssl/CA/cacert.pem -config openssl-ca.cnf
...
-----
# 更新前と同じ情報を入力します。
# デフォルト([]内表示)で良い場合は、そのままRETURNでOKです。
Country Name (2 letter code) [JP]:JPreturn           # JP: 日本
State or Province Name (full name) [Tokyo]:Tokyoreturn    # Tokyo:東京都
Locality Name (eg, city) [Setagaya]:Setagayareturn    # Setagaya:世田谷区
Organization Name (eg, company) [example.com]:example.comreturn   # 会社名 or ドメイン名
Organizational Unit Name (eg, section) []: return     # 部署などであるが、ここではそのままリターン
Common Name (eg, your name or your server's hostname) []:Private CAreturn  # CAの名前 : あなたの名前かサイト名
Email Address [webmaster@example.com]:webmaster@example.comreturn         # 管理者メールアドレス

# 認証局の有効期限を再確認します。
$ openssl x509 -inform PEM -in /etc/ssl/CA/cacert.pem -noout -text
...
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            c3:3c:3e:93:0a:36:01:41
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, O=Setagayaku, CN=example.com/emailAddress=webmaster@example.com
        Validity
            Not Before: Mar  9 19:50:45 2013 GMT
            Not After : Mar  7 19:50:45 2023 GMT
    ...


Diffie-Hellman(DH) パラメータを作成する。

証明書ではないですが、TLS のサーバー側では Diffie-Hellman パラメータを 求められることがあります。(例えば、OpenVPNは必要になります) その場合、以下のようにして、Diffie-Hellman(DH) パラメータを作成することができます。

# 1024 bit 版のDiffie-Hellman(DH) パラメータを作成する
$ openssl dhparam -out dbparam.pem 1024

# 2048 bit 版のDiffie-Hellman(DH) パラメータを作成する
$ openssl dhparam -out dbparam.pem 2048

(おまけ)プライベート認証局を登録(インポート)する

ここまでできたら、プライベート認証局で作成された各証明書について、信用するようにウェブブラウザやメールクライアントソフトにプライベート認証局を登録(インポート)してみましょう。
この登録(インポート)を行っていると、そのウェブブラウザやメールクライアントソフトでは、SSL接続時などに以下のような警告メッセージが表示されなくなります。

SSL警告

ここでは、FireFox, ThunderBirdにプライベート認証局を登録(インポート)してみます。


FireFoxにプライベート認証局を登録(インポート)する

  1. 先に作成したプライベート認証局のPEM形式の証明書をダウンロードしておきます。

    (ここでは、ダウンロードしたファイル名をcapem.pemとしておきます。)

  2. FireFoxのオプションを起動します。

    ツールバーのメニューアイコンをクリックし、オプションをクリックします。

    FireFoxのオプション

    メニューからたどる場合は、[ ツール ] – [ オプション ] をクリックします。


  3. FireFoxのオプション画面(詳細)から 証明書タブを選択、証明書表示…をクリックします。
    FireFoxのオプション

  4. FireFoxの証明書マネージャ画面から 認証局証明書タブを選択、インポート(M)…をクリックします。
    FireFoxのオプション

  5. 先にダウンロードした capem.pem を選択し、開く をクリックします。
    FireFoxのオプション

  6. 証明書インポート画面で、信頼の範囲を指定し、OK をクリックします。
    FireFoxのオプション

    ここでは、指定した認証局で作成されたウェブサイトおよびメールユーザについて信頼する(上2つにチェック)としています。

    以下のように FireFoxの証明書マネージャ画面に追加されればOkです。

    FireFoxのオプション

    画面のOKボタンをクリックし、終了です。



ThunderBirdにプライベート認証局を登録(インポート)する

  1. 先に作成したプライベート認証局のPEM形式の証明書をダウンロードしておきます。

    (ここでは、ダウンロードしたファイル名をcapem.pemとしておきます。)

  2. ThunderBirdのオプションを起動します。

    ツールバーのメニューアイコンをクリックし、[ オプション ] – [ オプション ] をクリックします。

    ThunderBirdのオプション

    メニューからたどる場合は、[ ツール ] – [ オプション ] をクリックします。


  3. ThunderBirdのオプション画面(詳細)から 証明書タブを選択、証明書表示…をクリックします。
    ThunderBirdのオプション

  4. ThunderBirdの証明書マネージャ画面から 認証局証明書タブを選択、インポート(M)…をクリックします。
    ThunderBirdのオプション

  5. 先にダウンロードした capem.pem を選択し、開く をクリックします。
    ThunderBirdのオプション

  6. 証明書インポート画面で、信頼の範囲を指定し、OK をクリックします。
    ThunderBirdのオプション

    ここでは、指定した認証局で作成されたウェブサイトおよびメールユーザについて信頼する(上2つにチェック)としています。

    以下のように ThunderBirdの証明書マネージャ画面に追加されればOkです。

    ThunderBirdのオプション

    画面のOKボタンをクリックし、終了です。



ここまで設定しておくと、一般ユーザは、警告メッセージを見ることなく、安全にSSL接続ができるでしょう。
もちろん、パブリック認証局であれば、このような作業も必要ありません。 このような簡単な作業であれば、社内向けにプライベート認証局によるSSL接続でも良いかもしれませんね。


このサイトでは、いろんな記事でこれらの認証ファイルの作成、使用手順を書いています。
あちこちに記述していて散漫な感じがしていましたし、間違いがあった場合などに更新する手間も多くなりがちでしたので、1つの記事でまとめることにしました。
さすがに、多くてちょっと大変でしたが、これで、全体像が見やすく、理解しやすくなったのではないかとも思います。 また、散在する各記事の認証ファイル系の解説も、都度、本記事へ集約するように更新していくつもりです。

それはされおき、

昨今では、セキュリティ強化への取り組みが目立ってきました。その中でもとりわけインターネットでのセキュリティ強化は、課題も多いのが現状です。 ただ、すぐにでも、少しでもセキュリティ強化したい場合は、OpenSSLの取り組みを行うことで強化を図ることができます。

まだ、取り組まれていない方は、早々の取り組みをお勧めいたします。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

apache でSSLを使ってみた(基本接続編)

Nginx でSSLを使ってみた(追記:SNIを含めてマルチドメインへの対応) では、nginxを使って簡単にSSL接続してみました。 今回は ...

apache でSSLを使ってみた(クライアント認証編)

apache でSSLを使ってみた(基本接続編) では、SSL接続の基本的な設定について解説しました。 今回は、apacheでSSL接続を行い ...

OpenVPN で不要になったクライアント証明書を無効にし、該クライアントからの接続を拒否する

今回は、OpenVPN を使って仮想LAN接続してみる の補足です。 SSL 認証 の仕組みと OpenVPN の認証の仕組み の認証方法 ...

apache でSSLを使ってみた(クライアント証明書失効編)

apache でSSLを使ってみた(クライアント認証編) では、SSL接続のクライアント証明書を使った認証までを解説しました。 今回は、先のク ...

mysqlでSSL接続する

mysqlでは、SSL接続にて情報を暗号化することができます。 少なくとも、CentOS,ScientificLinux,Debian,Ubu ...


4 件 コメントがあります。 コメントを投稿する
  1. Nick
    2014年10月4日, 12:29 AM

    初めまして。
    fortigateでクライアント認証をしようしたVPNの設定をする事になり
    ネットで調べて設定していましたが、うまくいかず詰まっていましたが
    こちらの方法を参考に証明書を作成した所、無事に設定することが出来ました。
    詳しい解説ありがとう御座いました。

    忘備録のためブログに残そうと思っています。
    その際にリンクを張りたいのですが宜しいでしょうか。

  2. 管理人
    2014年10月4日, 12:58 AM

    Nickさん
    コメントありがとうございます。
    何かの参考になったのであれば、嬉しい限りです。
    また、リンクは、ご自由にどうぞ。

  3. Nonbe
    2015年12月29日, 12:56 PM

    詳細な解説、大変役に立ちました。

    誤記がありましたので、細かいですが指摘させていただきます。
    誤) exmaple.com, examle.com
    正) example.com

  4. 管理人
    2015年12月30日, 10:10 AM

    Nonbe さん

    コメントありがとうございます、管理人です。
    ほんと、このようなご指摘は助かります、ありがとうございました。


コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2411 [s]