@@ -32,9 +32,9 @@ type reqCreateCert struct {
32
32
}
33
33
34
34
type respCert struct {
35
- Cert
35
+ Cert `json:"cert"`
36
36
Certificate string `json:"certificate,omitempty"`
37
- PrivateKey string `json:"private_key ,omitempty"`
37
+ PrivateKey string `json:"key ,omitempty"`
38
38
Error string `json:"error,omitempty"`
39
39
}
40
40
@@ -122,16 +122,26 @@ func (service *certmanager) reqGetCert(w http.ResponseWriter, r *http.Request) {
122
122
}
123
123
}
124
124
125
- // Add public key
126
- var publicKey bytes.Buffer
127
- if err := cert .WriteCertificate (& publicKey ); err != nil {
125
+ // Add certificate
126
+ var certdata , keydata bytes.Buffer
127
+ if err := cert .WriteCertificate (& certdata ); err != nil {
128
128
httpresponse .Error (w , http .StatusInternalServerError , err .Error ())
129
- } else {
130
- respCert .Certificate = publicKey .String ()
129
+ return
130
+ }
131
+
132
+ // Add private key if it's not a CA
133
+ if ! cert .IsCA () {
134
+ if err := cert .WritePrivateKey (& keydata ); err != nil {
135
+ httpresponse .Error (w , http .StatusInternalServerError , err .Error ())
136
+ return
137
+ }
131
138
}
132
139
133
- // TODO: Add private key if scope allows
140
+ // TODO: Don't add private key if scope doesn't allow it?
141
+ respCert .Certificate = certdata .String ()
142
+ respCert .PrivateKey = keydata .String ()
134
143
144
+ // Respond
135
145
httpresponse .JSON (w , respCert , http .StatusOK , jsonIndent )
136
146
}
137
147
0 commit comments