mirror of
https://wiilab.wiimart.org/wiimart/WiiMart-Patcher
synced 2025-09-05 21:11:13 +02:00
Standardize issuance time
This commit is contained in:
parent
952c3824e3
commit
79a712e3ad
@ -10,6 +10,9 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// YearIssueTime is an issuance of this year's date on January 1 at midnight.
|
||||||
|
var YearIssueTime = time.Date(time.Now().Year(), time.January, 1, 0, 0, 0, 0, time.UTC)
|
||||||
|
|
||||||
// generateSerial generates a random serial number for our issued certificates.
|
// generateSerial generates a random serial number for our issued certificates.
|
||||||
// It is taken from golang std: src/crypto/tls/generate_cert.go
|
// It is taken from golang std: src/crypto/tls/generate_cert.go
|
||||||
// Direct permalink on GitHub: https://git.io/JyyDw
|
// Direct permalink on GitHub: https://git.io/JyyDw
|
||||||
@ -25,14 +28,14 @@ func createCertificates() []byte {
|
|||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
// Generate root CA //
|
// Generate root CA //
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
rootCAFormat := x509.Certificate{
|
rootCert := &x509.Certificate{
|
||||||
SignatureAlgorithm: x509.SHA1WithRSA,
|
SignatureAlgorithm: x509.SHA1WithRSA,
|
||||||
SerialNumber: generateSerial(),
|
SerialNumber: generateSerial(),
|
||||||
Subject: pkix.Name{
|
Subject: pkix.Name{
|
||||||
CommonName: "Open Shop Channel CA",
|
CommonName: "Open Shop Channel CA",
|
||||||
},
|
},
|
||||||
NotBefore: time.Now(),
|
NotBefore: YearIssueTime,
|
||||||
NotAfter: time.Now().AddDate(10, 0, 0),
|
NotAfter: YearIssueTime.AddDate(10, 0, 0),
|
||||||
KeyUsage: x509.KeyUsageCertSign,
|
KeyUsage: x509.KeyUsageCertSign,
|
||||||
BasicConstraintsValid: true,
|
BasicConstraintsValid: true,
|
||||||
IsCA: true,
|
IsCA: true,
|
||||||
@ -41,13 +44,13 @@ func createCertificates() []byte {
|
|||||||
rootPriv, err := rsa.GenerateKey(rand.Reader, 2048)
|
rootPriv, err := rsa.GenerateKey(rand.Reader, 2048)
|
||||||
check(err)
|
check(err)
|
||||||
|
|
||||||
rootCert, err := x509.CreateCertificate(rand.Reader, &rootCAFormat, &rootCAFormat, &rootPriv.PublicKey, rootPriv)
|
rootPublic, err := x509.CreateCertificate(rand.Reader, rootCert, rootCert, &rootPriv.PublicKey, rootPriv)
|
||||||
check(err)
|
check(err)
|
||||||
|
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
// Issue server TLS certificate //
|
// Issue server TLS certificate //
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
serverCertFormat := x509.Certificate{
|
serverCert := x509.Certificate{
|
||||||
SignatureAlgorithm: x509.SHA1WithRSA,
|
SignatureAlgorithm: x509.SHA1WithRSA,
|
||||||
SerialNumber: generateSerial(),
|
SerialNumber: generateSerial(),
|
||||||
// We'll issue with a primary common name for our base domain.
|
// We'll issue with a primary common name for our base domain.
|
||||||
@ -58,8 +61,8 @@ func createCertificates() []byte {
|
|||||||
DNSNames: []string{
|
DNSNames: []string{
|
||||||
"*." + baseDomain,
|
"*." + baseDomain,
|
||||||
},
|
},
|
||||||
NotBefore: time.Now(),
|
NotBefore: YearIssueTime,
|
||||||
NotAfter: time.Now().AddDate(10, 0, 0),
|
NotAfter: YearIssueTime.AddDate(10, 0, 0),
|
||||||
KeyUsage: x509.KeyUsageKeyAgreement | x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
|
KeyUsage: x509.KeyUsageKeyAgreement | x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
|
||||||
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
|
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
|
||||||
IsCA: false,
|
IsCA: false,
|
||||||
@ -69,24 +72,24 @@ func createCertificates() []byte {
|
|||||||
serverPriv, err := rsa.GenerateKey(rand.Reader, 2048)
|
serverPriv, err := rsa.GenerateKey(rand.Reader, 2048)
|
||||||
check(err)
|
check(err)
|
||||||
|
|
||||||
serverCert, err := x509.CreateCertificate(rand.Reader, &serverCertFormat, &rootCAFormat, &serverPriv.PublicKey, rootPriv)
|
serverPublic, err := x509.CreateCertificate(rand.Reader, &serverCert, rootCert, &serverPriv.PublicKey, rootPriv)
|
||||||
check(err)
|
check(err)
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
// Persist certificates //
|
// Persist certificates //
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
rootCertPem := pemEncode("CERTIFICATE", rootCert)
|
rootCertPem := pemEncode("CERTIFICATE", rootPublic)
|
||||||
rootKeyPem := pemEncode("RSA PRIVATE KEY", x509.MarshalPKCS1PrivateKey(rootPriv))
|
rootKeyPem := pemEncode("RSA PRIVATE KEY", x509.MarshalPKCS1PrivateKey(rootPriv))
|
||||||
serverCertPem := pemEncode("CERTIFICATE", serverCert)
|
serverCertPem := pemEncode("CERTIFICATE", serverPublic)
|
||||||
serverKeyPem := pemEncode("RSA PRIVATE KEY", x509.MarshalPKCS1PrivateKey(serverPriv))
|
serverKeyPem := pemEncode("RSA PRIVATE KEY", x509.MarshalPKCS1PrivateKey(serverPriv))
|
||||||
|
|
||||||
writeOut("root.pem", rootCertPem)
|
writeOut("root.pem", rootCertPem)
|
||||||
writeOut("root.cer", rootCert)
|
writeOut("root.cer", rootPublic)
|
||||||
writeOut("root.key", rootKeyPem)
|
writeOut("root.key", rootKeyPem)
|
||||||
writeOut("server.pem", serverCertPem)
|
writeOut("server.pem", serverCertPem)
|
||||||
writeOut("server.key", serverKeyPem)
|
writeOut("server.key", serverKeyPem)
|
||||||
|
|
||||||
return rootCert
|
return rootPublic
|
||||||
}
|
}
|
||||||
|
|
||||||
func pemEncode(typeName string, bytes []byte) []byte {
|
func pemEncode(typeName string, bytes []byte) []byte {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user