Skip to content

Commit 5cb9f10

Browse files
committed
Create a signed certificate
1 parent e3ac16a commit 5cb9f10

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

certificates.go

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ func generateSingleCertificate(isCa bool) (*x509.Certificate, error) {
133133

134134
func generateCertificates() {
135135

136+
os.Remove("ca.cert.pem")
137+
os.Remove("ca.key.pem")
138+
os.Remove("cert.pem")
139+
os.Remove("key.pem")
140+
136141
// Create the key for the certification authority
137142
caKey, err := generateKey("")
138143
if err != nil {
@@ -159,12 +164,47 @@ func generateCertificates() {
159164

160165
derBytes, err := x509.CreateCertificate(rand.Reader, caTemplate, caTemplate, publicKey(caKey), caKey)
161166

162-
certOut, err := os.Create("ca.crt.pem")
167+
certOut, err := os.Create("ca.cert.pem")
168+
if err != nil {
169+
log.Error(err.Error())
170+
os.Exit(1)
171+
}
172+
pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
173+
certOut.Close()
174+
log.Print("written ca.cert.pem")
175+
176+
// Create the key for the final certificate
177+
key, err := generateKey("")
178+
if err != nil {
179+
log.Error(err.Error())
180+
os.Exit(1)
181+
}
182+
183+
keyOut, err = os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
184+
if err != nil {
185+
log.Error(err.Error())
186+
os.Exit(1)
187+
}
188+
pem.Encode(keyOut, pemBlockForKey(key))
189+
keyOut.Close()
190+
log.Println("written key.pem")
191+
192+
// Create the final certificate
193+
template, err := generateSingleCertificate(false)
194+
195+
if err != nil {
196+
log.Error(err.Error())
197+
os.Exit(1)
198+
}
199+
200+
derBytes, err = x509.CreateCertificate(rand.Reader, template, caTemplate, publicKey(key), key)
201+
202+
certOut, err = os.Create("cert.pem")
163203
if err != nil {
164204
log.Error(err.Error())
165205
os.Exit(1)
166206
}
167207
pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
168208
certOut.Close()
169-
log.Print("written ca.crt.pem")
209+
log.Print("written cert.pem")
170210
}

0 commit comments

Comments
 (0)