5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

本来は推奨するものではありません。

ルート証明書やクライアント証明書の有効期限が切れた場合に、
通常は全台に再配布などが必要だが
WEBサーバーのopensslをリビルドすることでなんとかできるという話。

通常はApacheのerror_log に以下エラー

日付が過ぎている場合、以下エラーが出力される。

[error] [client 127.0.01] Certificate Verification: Error (10): certificate has expired[Wed Oct 02 05:41:46 2024] [debug] ssl_engine_kernel.c(1894): OpenSSL: Write: error

以下を行った場合はエラーとせずアクセスできるようになる。

WEBサーバーの日時を変更する方法

自己署名証明書で稼働しているWEBサーバーで証明書の有効期限を無制限にしたい場合は
WEBサーバーのOSの日付を有効期限前にし続ければよい。

日付を設定する方法
# (過去)有効期限より前にしたいとき
date -s "2020-10-21 10:10:10"

# (未来)有効期限切れの動作をチェックしたい場合
date -s "2030-10-21 10:10:10"

OpenSSLのx509_vfy.cを変更する方法

有効期限が切れていた場合、expiredに遷移するがそこを許容する。

  • crypto/x509/x509_vfy.c
openssl.spec
sed -i \
 -e "1593i return 1; //Allow expired certificates !" \
 crypto/x509/x509_vfy.c
rpm -Uvh --force openssl*rpm
reboot

有効期限が過ぎていてもアクセスできることを確認。

気づき

証明書のチェックはhttpdパッケージ内のmod_ssl.soが行っていると思っていたが
そうではなく、libcrypto.solibssl.so が行っている様子。

他にもレガシーネタいろいろ書いています

参考

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?