aboutsummaryrefslogtreecommitdiff
path: root/crypto/x509/csr.go
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/x509/csr.go')
-rw-r--r--crypto/x509/csr.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/crypto/x509/csr.go b/crypto/x509/csr.go
new file mode 100644
index 0000000..76ea809
--- /dev/null
+++ b/crypto/x509/csr.go
@@ -0,0 +1,28 @@
1package x509
2
3import (
4 "crypto/rand"
5 "crypto/rsa"
6 "crypto/x509"
7 "crypto/x509/pkix"
8)
9
10const defaultRSAKeyStrength = 4096
11
12func GenerateRSAKeyCSR(domains ...string) ([]byte, *rsa.PrivateKey, error) {
13 ckey, err := rsa.GenerateKey(rand.Reader, defaultRSAKeyStrength)
14 if err != nil {
15 return nil, nil, err
16 }
17
18 csr, err := x509.CreateCertificateRequest(rand.Reader, &x509.CertificateRequest{
19 Subject: pkix.Name{CommonName: domains[0]},
20 DNSNames: domains,
21 ExtraExtensions: []pkix.Extension{},
22 }, ckey)
23 if err != nil {
24 return nil, nil, err
25 }
26
27 return csr, ckey, nil
28}