global menu
search this site
sponsored links
REX CARD
楽天カード
漢方スタイルクラブカード
DMM mobile
OCN モバイル ONE
IIJmio

撮影機材
store
category archive
monthly archive
powered by

エントリーアーカイブ

CentOS 5のOpenSSLでApeche用の自己署名証明書を作成する

CentOS

2010/08/05 13:11

自己署名証明書の作成

  1. OpenSSLはインストール済
  2. 作業用ディレクトリの作成
    # mkdir /ssl
  3. 鍵生成時に使用する乱数データ(rand.dat)の作成
    # cd /etc
    # openssl md5 * > /ssl/rand.dat
    
    ※ここでは/etcのmd5ハッシュ値付きファイル一覧を乱数データとして使用
  4. サーバ鍵(server.key)の作成
    # openssl genrsa -des3 -out /ssl/server.key -rand /ssl/rand.dat 1024
    Generating RSA private key, 1024 bit long modulus
    ........++++++
    ......++++++
    e is 65537 (0x10001)
    Enter pass phrase for /ssl/server.key:(サーバ鍵用のパスフレーズを入力)
    Verifying - Enter pass phrase for /ssl/server.key:(サーバ鍵用のパスフレーズを入力)
    
    ※CA鍵(ca.key)作成時のパスワードとは異なるものにする
  5. サーバー証明書(server.csr)の作成
    # openssl req -new -key /ssl/server.key -out /ssl/server.csr
    Enter pass phrase for /etc/httpd/conf/ssl/server.key:(サーバ鍵用のパスフレーズを入力)
    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) [GB]:(国コード)
    State or Province Name (full name) [Berkshire]:(都道府県名)
    Locality Name (eg, city) [Newbury]:(市町村名)
    Organization Name (eg, company) [My Company Ltd]:(組織名)
    Organizational Unit Name (eg, section) []:(組織でのユニット名)
    Common Name (eg, your name or your server's hostname) []:(ドメイン名またはIPアドレス)
    Email Address []:(管理者のメールアドレス)
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:(入力せずEnter)
    An optional company name []:(入力せずEnter)
    
  6. ■CA鍵(ca.key)の作成
    # openssl genrsa -des3 -out /ssl/ca.key -rand /ssl/rand.dat 1024
    Generating RSA private key, 1024 bit long modulus
    ........++++++
    ......++++++
    e is 65537 (0x10001)
    Enter pass phrase for /ssl/ca.key:(CA鍵用のパスフレーズを入力)
    Verifying - Enter pass phrase for /ssl/ca.key:(CA鍵用のパスフレーズを入力)
    
    ※サーバ鍵(server.key)作成時のパスワードとは異なるものにする
  7. ■CA証明書(ca.crt)の作成
    # openssl req -new -x509 -days 365 -key /ssl/ca.key -out /ssl/ca.crt
    Enter pass phrase for ca.key:(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) [GB]:(国コード)
    State or Province Name (full name) [Berkshire]:(都道府県名)
    Locality Name (eg, city) [Newbury]:(市町村名)
    Organization Name (eg, company) [My Company Ltd]:(組織名)
    Organizational Unit Name (eg, section) []:(組織でのユニット名)
    Common Name (eg, your name or your server's hostname) []:(ドメイン名またはIPアドレス)
    Email Address []:(管理者のメールアドレス)
    
  8. 署名用のシェルスクリプトの入手
    1. mod_ssl: The Apache Interface to OpenSSLからmod_sslの最新版を入手
      wget (mod_sslのURL)
    2. 解凍してsign.shを取り出し、元ファイルを削除
      # tar xvzf mod_ssl-(バージョン).tar.gz
      # cp /ssl/mod_ssl-(バージョン)/pkg.contrib/sign.sh /ssl
      # rm -rf /ssl/mod_ssl-(バージョン)
      # rm -rf /ssl/mod_ssl-(バージョン).tar.gz
      
  9. CAとしてサーバー証明書(server.csr)に署名
    # sh /ssl/sign.sh /ssl/server.csr
    CA signing: server.csr -> server.crt:
    Using configuration from ca.config
    Enter pass phrase for ./ca.key:(CA鍵用のパスフレーズを入力)
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'(国コード)'
    stateOrProvinceName   :PRINTABLE:'(都道府県名)'
    localityName          :PRINTABLE:'(市町村名)'
    organizationName      :PRINTABLE:'(組織名)'
    organizationalUnitName:ASN.1 12:'(組織でのユニット名)'
    commonName            :PRINTABLE:'(ドメイン名またはIPアドレス)'
    emailAddress          :IA5STRING:'(管理者のメールアドレス)'
    Certificate is to be certified until (有効期限の日時) GMT (365 days)
    Sign the certificate? [y/n]:(y)
    
    
    1 out of 1 certificate requests certified, commit? [y/n](y)
    Write out database with 1 new entries
    Data Base Updated
    CA verifying: server.crt <-> CA cert
    server.crt: OK
    
  10. 証明書一式の所有権の変更
    # cd /ssl
    # chmod -c -R 400 server.* ca.* rand.dat
    
  11. Apacheへの組み込みの為に証明書一式のコピー
    # mkdir /etc/httpd/ssl.key
    # cp -r /ssl/* /etc/httpd/ssl.key
    
  12. Apacheへの組み込み
    # yum -y install mod_ssl
    # vi /etc/httpd/conf.d/ssl.conf
    
    SSLCertificateFile /etc/httpd/ssl.key/server.crt
    SSLCertificateKeyFile /etc/httpd/ssl.key/server.key
    
  13. Apache自動起動の為にサーバ鍵(server.key)のパスフレーズ解除
    # cp /ssl/server.key /ssl/server.key.org
    # openssl rsa -in /ssl/server.key.org -out /ssl/server.key
    
  14. Apacheを再起動
    # /sbin/service httpd restart

※今回の作成方法では有効期限はそれぞれ1年間であり、1年後に同様の作業を行う必要がある

解説サイト