Pivotal Knowledge Base

フォローする

OpenSSLのツールを使用して期限切れのApache Webサーバーの自己署名証明書を更新する方法

環境

製品
Pivotal Web Server

目的

本記事では、OpenSSLのツールを使用して、期限切れのApache Webサーバーの自己署名証明書を更新する方法について述べる。

前提

OpenSSLのツールを使用して、期限切れのSSL証明書を更新する必要がある際に本記事の内容を参照のこと。 

手順

  1. 以下のコマンドを入力し、Apacheインスタンスssl/testingcert.crt証明書の有効期限を確認する。 
    > openssl x509 -in ssl/testingcert.crt -noout -enddate
    notAfter=Dec 30 11:10:42 2013 GMT
  2. 既存のssl/testingcert.key秘密鍵を使用して、新しい証明書署名リクエストを生成する。

    > openssl req -new -key ssl/testingcert.key -out ssl/new.csr

    もし、暗号化と署名に新しい2048ビットのRSA秘密鍵を生成する必要がある場合は以下のように行う。

    > openssl genrsa -out ssl/testingcert.key 2048

    ヒント: 秘密鍵をパスワードで保護したい場合は、-des3フラグを追加する。 

    以下の方法で証明書署名リクエストの情報を確認することができる。

    > openssl req -in ssl/new.csr -noout -text
    Certificate Request:
    Data:
            Version: 0 (0x0)
             Subject: C=ca, ST=Some-State, O=Internet Widgits Pty Ltd
             Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                RSA Public Key: (2048 bit)
                     Modulus (2048 bit):
                        00:c6:3d:60:21:ac:a8:82:36:8c:f0:1b:98:fb:24:
                        33:68:60:14:a0:c1:7d:be:8b:44:c3:81:02:ee:1d:
                        1e:d4:22:5a:6e:67:b4:ed:de:c4:b1:ba:ec:70:be:
              ...
  3. 新しい証明書署名リクエストを使用して有効期限が 1年(365日)の証明書を新規に作成する。
    > openssl x509 -req -days 365 -in ssl/new.csr -signkey ssl/testingcert.key -out ssl/new.crt
  4. ssl/testingcert.keyから新しい.pemファイルを生成する。
    > cp ssl/testingcert.key ssl/new.pem
  5. ssl/new.crtの中身をssl/new.pemファイル へ追記することによって、証明書と鍵を組み合わせる。

    >  cat ssl/new.crt >> ssl/new.pem

    Apache SSLの設定ファイルで、new.*証明書ファイルで該当するSSL行を書き換えるか、もしくは新設定に適合する新しいSSL証明書ファイルの名前に変更する。

  6. 新しい証明書の検証とテストを実施する。

    > openssl verify ssl/new.crt
    ssl/new.crt: /C=ca/ST=Some-State/O=Internet Widgits Pty Ltd
    error 18 at 0 depth lookup:self signed certificate
    OK

    ポート4567でリスンするssl/testingcert.pemを利用するサーバーの起動を行う。

    > openssl s_server -cert ssl/testingcert.pem -www -accept 4567

    SSLセキュアクライアントコネクションを確立し、証明書リクエスト情報を確認する。

    >  openssl s_client -connect localhost:4567
    CONNECTED(00000003)
    depth=0 /C=ca/ST=Some-State/O=Internet Widgits Pty Ltd
    verify error:num=18:self signed certificate
    verify return:1
    depth=0 /C=ca/ST=Some-State/O=Internet Widgits Pty Ltd
    verify return:1
    ---
    Certificate chain
     0 s:/C=ca/ST=Some-State/O=Internet Widgits Pty Ltd
       i:/C=ca/ST=Some-State/O=Internet Widgits Pty Ltd
    ---
    Server certificate
    -----BEGIN CERTIFICATE-----
    MIIDBjCCAe4CCQCK97sfGPDV5zANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJj
    YTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
    cyBQdHkgTHRkMB4XDTEyMTIzMTA2MjUxOVoXDTEzMTIzMTA2MjUxOVowRTELMAkG
    A1UEBhMCY2ExEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0
    IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
    AMY9YCGsqII2jPAbmPskM2hgFKDBfb6LRMOBAu4dHtQiWm5ntO3exLG67HC+kVoH
    0J2HX+nnDi6bbsh244vh9KkpM9rgxkybAyOYYNnDZoiW+87DLxkAR041tX8Vl2yk
    ...

    問題ないようであれば、新しい証明書でApacheサーバーインスタンスを起動する準備が完了となる。

追加情報

OpenSSLを使用した自己署名SSL証明書の作成方法 - http://www.xenocafe.com/tutorials/linux/centos/openssl/self_signed_certificates/index.php

OpenSSLコマンドラインの使い方 - http://www.madboa.com/geek/openssl/

©VMware 2013

コメント

Powered by Zendesk