おやじ様の「SSL用証明書の作成(Windows編)」を参考に、認証局と証明書を作成しました。
SSLでの通信は行えるのですが、CA.pl内の$DAYSを3650に変更しても、ブラウザでアクセス時に証明書の確認をすると、有効期限が1年になっています。
CA.pl -newca 時の画面表示(実行後の最後のほうに表示されるCertificate is to be certified until...)は $CADAYS で設定した日数が出るのですが、CA.pl -sign 時の画面表示は、365 days となっています。
CA.pl の中身をチェックしたところ、引数が sign の時に実行されるコマンドは $DAYS が使われていないようだったので、試しに追加してみました。すると、CA.pl -sign 時の画面表示が 3650 days となり、ブラウザでアクセス時に表示される証明書の期限が3650日後になりました。
色々検索したのですが、CA.plを使わない方法か、$DAYS の値を変更する方法しか、証明書の有効期限を変更する方法が見つかりませんでした。
・そもそも「証明書の有効期限」とは、ブラウザアクセス時に見える有効期限とは異なるのでしょうか?
・私の環境の問題で、証明書の有効期限が反映されないのでしょうか?
・私の取った方法(CA.plの修正)で作成される証明書に問題はないでしょうか?
環境は以下の通りです。
WindowsXP
Apache_2.0.59-Openssl_0.9.8d
OpenSSL0.9.8
どなたかコメント頂けると助かります。
> おやじ様の「SSL用証明書の作成(Windows編)」を参考に、認証局と証明書を作成しました。
> SSLでの通信は行えるのですが、CA.pl内の$DAYSを3650に変更しても、ブラウザでアクセス時に証明書の確認をすると、有効期限が1年になっています。
>
> CA.pl -newca 時の画面表示(実行後の最後のほうに表示されるCertificate is to be certified until...)は $CADAYS で設定した日数が出るのですが、CA.pl -sign 時の画面表示は、365 days となっています。
>
> CA.pl の中身をチェックしたところ、引数が sign の時に実行されるコマンドは $DAYS が使われていないようだったので、試しに追加してみました。すると、CA.pl -sign 時の画面表示が 3650 days となり、ブラウザでアクセス時に表示される証明書の期限が3650日後になりました。
>
> 色々検索したのですが、CA.plを使わない方法か、$DAYS の値を変更する方法しか、証明書の有効期限を変更する方法が見つかりませんでした。
>
> ・そもそも「証明書の有効期限」とは、ブラウザアクセス時に見える有効期限とは異なるのでしょうか?
> ・私の環境の問題で、証明書の有効期限が反映されないのでしょうか?
> ・私の取った方法(CA.plの修正)で作成される証明書に問題はないでしょうか?
>
> 環境は以下の通りです。
> WindowsXP
> Apache_2.0.59-Openssl_0.9.8d
> OpenSSL0.9.8
>
> どなたかコメント頂けると助かります。
情報ありがとうございます。おやじのミスですね。テストを失敗していたと思われます。
CA.plを使用して、証明書の有効期間を変更する方法は2つあります。
方法1. 今回やられたように、CA.pl内の135/138/143行目に下記のように$DAYSを追記して$DAYSに値を設定する方法。
変更前:system ("$CA -policy policy_anything ・・・");
変更後:system ("$CA $DAYS -policy policy_anything ・・・");
方法2. CA.plはそのままにして、openssl.confのdefault_daysを変更する方法。
CA.plの-signではデフォルトでは-daysの設定が無いので、ここで指定した値が適用される。
default_days = 365
コンテンツを修正しておきました。
openssl.conf の修正は Linux 用の手順説明では
見かけていたのですが、まだ試していませんでした。
サーバ証明書の期限を変更するだけならば、CA.plよりも
openssl.conf を修正した方が簡単でミスも少なそうですね。
おやじ様のサイトは手順が詳細に書かれていて、
本当に助かりました。
ありがとうございました!