|
|
@@ -33,3 +33,32 @@ func TestCertificateIssuing(t *testing.T) {
|
|
|
assert(err, IsNil)
|
|
|
assert(x509Cert.NotAfter.After(time.Now()), IsTrue)
|
|
|
}
|
|
|
+
|
|
|
+func TestExpiredCertificate(t *testing.T) {
|
|
|
+ assert := With(t)
|
|
|
+
|
|
|
+ caCert := cert.MustGenerate(nil, cert.Authority(true), cert.KeyUsage(x509.KeyUsageCertSign))
|
|
|
+ expiredCert := cert.MustGenerate(caCert, cert.NotAfter(time.Now().Add(time.Minute*-2)), cert.CommonName("www.v2ray.com"), cert.DNSNames("www.v2ray.com"))
|
|
|
+
|
|
|
+ certificate := ParseCertificate(caCert)
|
|
|
+ certificate.Usage = Certificate_AUTHORITY_ISSUE
|
|
|
+
|
|
|
+ certificate2 := ParseCertificate(expiredCert)
|
|
|
+
|
|
|
+ c := &Config{
|
|
|
+ Certificate: []*Certificate{
|
|
|
+ certificate,
|
|
|
+ certificate2,
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ tlsConfig := c.GetTLSConfig()
|
|
|
+ v2rayCert, err := tlsConfig.GetCertificate(&gotls.ClientHelloInfo{
|
|
|
+ ServerName: "www.v2ray.com",
|
|
|
+ })
|
|
|
+ assert(err, IsNil)
|
|
|
+
|
|
|
+ x509Cert, err := x509.ParseCertificate(v2rayCert.Certificate[0])
|
|
|
+ assert(err, IsNil)
|
|
|
+ assert(x509Cert.NotAfter.After(time.Now()), IsTrue)
|
|
|
+}
|