|
|
|
@ -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) |
|
|
|
|
} |
|
|
|
|