@@ -373,6 +373,9 @@ def test_set_custom_params
373
373
-----END CERTIFICATE-----
374
374
EOF
375
375
376
+ require 'time'
377
+ VERIFY_EXPIRED_TIME = Time . parse ( "2021/10/20 09:10:00" )
378
+
376
379
def test_cert_verify_expired1_lets_encrypt_cross_signed_root
377
380
# reproducer for https://github.com/jruby/jruby-openssl/issues/236
378
381
#
@@ -391,6 +394,7 @@ def test_cert_verify_expired1_lets_encrypt_cross_signed_root
391
394
]
392
395
393
396
cert_store = OpenSSL ::X509 ::Store . new
397
+ cert_store . time = VERIFY_EXPIRED_TIME
394
398
root_bundle . each { |cert | cert_store . add_cert cert }
395
399
396
400
# the endpoint will send the leaf node + these two intermediate certs
@@ -448,6 +452,7 @@ def test_cert_verify_expired2_lets_encrypt_cross_signed_intermediate
448
452
]
449
453
450
454
cert_store = OpenSSL ::X509 ::Store . new
455
+ cert_store . time = VERIFY_EXPIRED_TIME
451
456
root_bundle . each { |cert | cert_store . add_cert cert }
452
457
453
458
# cross-signed cert is sent from the server :
@@ -483,6 +488,7 @@ def test_cert_verify_expired0_lets_encrypt # base_line
483
488
]
484
489
485
490
cert_store = OpenSSL ::X509 ::Store . new
491
+ cert_store . time = VERIFY_EXPIRED_TIME
486
492
root_bundle . each { |cert | cert_store . add_cert cert }
487
493
488
494
chain = [
@@ -500,6 +506,16 @@ def test_cert_verify_expired0_lets_encrypt # base_line
500
506
"/C=US/O=Let's Encrypt/CN=R3" ,
501
507
"/C=US/O=Internet Security Research Group/CN=ISRG Root X1" ] ,
502
508
cert_store . chain . map { |cert | cert . subject . to_s }
509
+
510
+ cert_store = OpenSSL ::X509 ::Store . new
511
+ cert_store . time = VERIFY_EXPIRED_TIME
512
+ cert_store . add_cert root_bundle [ 1 ] # only the expired one
513
+
514
+ ok = cert_store . verify ( LEAF_CERTIFICATE , chain )
515
+
516
+ assert !ok
517
+ assert_equal 'unable to get issuer certificate' , cert_store . error_string
518
+ end
503
519
end
504
520
505
521
end
0 commit comments