OpenSSLが証明書を再発行し、古い秘密キーで署名することを許可する一方で、Modulus証明書の構造を維持し、新しい証明書は古いクライアント証明書を正常に検証します。
新しい証明書を作成します。
openssl x509 -in ca.crt -days 3650 -out ca-new.crt -signkey ca.key
答えが得られます。
Getting Private key
および新しい証明書ca-new.crt
クライアント証明書を新しいルート証明書で検証します。
openssl verify -CAfile ca-new.crt client9.crt
すべてが順調です:
client9.crt: OK
次のコマンドを使用すると、証明書の内容を表示し、新しいModulus証明書と古いModulus証明書が同じであることを確認できます。
openssl x509 -noout -text -in ca-new.crt
すべてが非常に良いようです。古い証明書のイメージで名前を変更し、それを置く場所をユーザーに指示した後、新しい証明書を送信します(古い証明書を上書きします)。
サーバーでサービスを再起動し、クライアントの接続方法を確認します。 残念ながら、すべてのクライアントがこれを成功させたわけではありません。 ログに記録されたもの:
Tue Mar 21 15:12:18 2017 VERIFY ERROR: depth=1, error=certificate signature failure: /C=RU...
ここでは、数時間を失う必要があり、最終的にはクライアント証明書の検証もクライアントコンピューターで機能しなかったことが判明しました。
openssl verify -CAfile ca-new.crt client9.crt
(OpenVPNの一部としての)opensslバージョンは古いことが判明し、正常にチェックしたくありませんでした。
したがって、問題のあるクライアントはOpenVPNをバージョン2.3.3にアップグレードする必要がありました(これを使用しましたが、他のことについては何も言えませんが、新しいバージョンも積極的に動作すると思います)。システムはさらに10年間送信されました。