Apache+SSLで自前の証明書を作成する方法

Vine Evo

自前の証明書を作成する

ProEvo > Vine Evo > 自前の証明書を作成する


1 自前の証明書とは何か?

1.1 mod_sslの証明書と自前の証明書

Apache+mod_sslのインストールではmake certificateを実行することで証明書を作成できます。
しかし、これではDessertOilという架空の会社が証明書の認証局となってしまうのでちょっとかっこ悪いです。
また、make certificateで作成した証明書ではApacheのスタート時にいちいちパスワードを入力する必要があるので具合が悪いです。
ここでは、自前の認証局を設置してパスワード入力の必要のない証明書を作成する方法を解説します。

2 認証局を設置する

2.1 認証局の設置手順

以下の手順で認証局を設置します。
パラメータは自分の環境に合わせて適宜変更してください。
また、opensslはRPMパッケージでインストールしたものを使用しています。

  1. cd /usr/local/apache/conf/ssl
  2. /usr/share/ssl/misc/CA -newca
    <<
    CA certificate filename (or enter to create)
    
    Enter PEM pass phrase: ******
    Verifying password - Enter PEM pass phrase: *****
    Country Name (2 letter code) [AU]: JA
    State or Province Name (full name) [Some-State]: Kanagawa
    Locality Name (eg, city) []: Yokosuka
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: A.G.Labo
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server's hostname) []: agartha
    Email Address []: root@agartha
    
    >>
これで、カレントディレクトリに認証局のディレクトリdemoCAが作成されます。

2 証明書を作成する

2.1 証明書作成の手順

以下の手順で証明書を作成します。

  1. openssl genrsa -des -out server.key
    <<
    Enter PEM pass phrase: ******
    Verifying password - Enter PEM pass phrase: ******
    
    >>
  2. openssl rsa -in server.key -out server.key
    <<
    Enter PEM pass phrase: ****** 上記で指定したパスフレーズ
    
    >>
  3. openssl req -new -key server.key -out server.csr
    <<
    Country Name (2 letter code) [AU]: JA
    State or Province Name (full name) [Some-State]: Kanagawa
    Locality Name (eg, city) []: Yokosuka
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: A.G.Labo
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server's hostname) []: agartha
    Email Address []: root@agartha
    
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    
    >>
  4. openssl x509 -in server.csr -req -signkey server.key -out server.crt
以上で証明書の作成は終了です。 /usr/local/apache/conf/httpd.confで
SSLCertificateFile /usr/local/apache/conf/ssl/server.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/server.key
と指定されているので、上記のファイルが証明書として読み込まれます。
$Revision: 66 $
Last update: $Date: 2007-05-09 07:55:14 +0900 (豌エ, 09 5譛 2007) $