pki: Optionally extract public key from given private key in --issue
[strongswan.git] / src / pki / man / pki---issue.1.in
1 .TH "PKI \-\-ISSUE" 1 "2013-08-12" "@PACKAGE_VERSION@" "strongSwan"
2 .
3 .SH "NAME"
4 .
5 pki \-\-issue \- Issue a certificate using a CA certificate and key
6 .
7 .SH "SYNOPSIS"
8 .
9 .SY pki\ \-\-issue
10 .OP \-\-in file
11 .OP \-\-type type
12 .BI \-\-cakey\~ file |\-\-cakeyid\~ hex
13 .BI \-\-cacert\~ file
14 .OP \-\-dn subject-dn
15 .OP \-\-san subjectAltName
16 .OP \-\-lifetime days
17 .OP \-\-not-before datetime
18 .OP \-\-not-after datetime
19 .OP \-\-serial hex
20 .OP \-\-flag flag
21 .OP \-\-digest digest
22 .OP \-\-ca
23 .OP \-\-crl uri\ \fR[\fB\-\-crlissuer\ \fIissuer\fR]
24 .OP \-\-ocsp uri
25 .OP \-\-pathlen len
26 .OP \-\-nc-permitted name
27 .OP \-\-nc-excluded name
28 .OP \-\-policy\-mapping mapping
29 .OP \-\-policy\-explicit len
30 .OP \-\-policy\-inhibit len
31 .OP \-\-policy\-any len
32 .OP \-\-cert\-policy oid\ \fR[\fB\-\-cps\-uri\ \fIuri\fR]\ \fR[\fB\-\-user\-notice\ \fItext\fR]
33 .OP \-\-outform encoding
34 .OP \-\-debug level
35 .YS
36 .
37 .SY pki\ \-\-issue
38 .BI \-\-options\~ file
39 .YS
40 .
41 .SY "pki \-\-issue"
42 .B \-h
43 |
44 .B \-\-help
45 .YS
46 .
47 .SH "DESCRIPTION"
48 .
49 This sub-command of
50 .BR pki (1)
51 is used to issue a certificate using a CA certificate and private key.
52 .
53 .SH "OPTIONS"
54 .
55 .TP
56 .B "\-h, \-\-help"
57 Print usage information with a summary of the available options.
58 .TP
59 .BI "\-v, \-\-debug " level
60 Set debug level, default: 1.
61 .TP
62 .BI "\-+, \-\-options " file
63 Read command line options from \fIfile\fR.
64 .TP
65 .BI "\-i, \-\-in " file
66 Public key or PKCS#10 certificate request file to issue. If not given the
67 key/request is read from \fISTDIN\fR.
68 .TP
69 .BI "\-t, \-\-type " type
70 Type of the input. One of \fIpub\fR (public key), \fIrsa\fR (RSA private key),
71 \fIecdsa\fR (ECDSA private key), or \fIpkcs10\fR (PKCS#10 certificate request),
72 defaults to \fIpub\fR.
73 .TP
74 .BI "\-k, \-\-cakey " file
75 CA private key file. Either this or
76 .B \-\-cakeyid
77 is required.
78 .TP
79 .BI "\-x, \-\-cakeyid " hex
80 Key ID of a CA private key on a smartcard. Either this or
81 .B \-\-cakey
82 is required.
83 .TP
84 .BI "\-c, \-\-cacert " file
85 CA certificate file. Required.
86 .TP
87 .BI "\-d, \-\-dn " subject-dn
88 Subject distinguished name (DN) of the issued certificate.
89 .TP
90 .BI "\-a, \-\-san " subjectAltName
91 subjectAltName extension to include in certificate. Can be used multiple times.
92 .TP
93 .BI "\-l, \-\-lifetime " days
94 Days the certificate is valid, default: 1095. Ignored if both
95 an absolute start and end time are given.
96 .TP
97 .BI "\-F, \-\-not-before " datetime
98 Absolute time when the validity of the certificate begins. The datetime format
99 is defined by the
100 .B \-\-dateform
101 option.
102 .TP
103 .BI "\-T, \-\-not-after " datetime
104 Absolute time when the validity of the certificate ends. The datetime format is
105 defined by the
106 .B \-\-dateform
107 option.
108 .TP
109 .BI "\-D, \-\-dateform " form
110 strptime(3) format for the
111 .B \-\-not\-before
112 and
113 .B \-\-not\-after
114 options, default:
115 .B %d.%m.%y %T
116 .TP
117 .BI "\-s, \-\-serial " hex
118 Serial number in hex. It is randomly allocated by default.
119 .TP
120 .BI "\-e, \-\-flag " flag
121 Add extendedKeyUsage flag. One of \fIserverAuth\fR, \fIclientAuth\fR,
122 \fIcrlSign\fR, or \fIocspSigning\fR. Can be used multiple times.
123 .TP
124 .BI "\-g, \-\-digest " digest
125 Digest to use for signature creation. One of \fImd5\fR, \fIsha1\fR,
126 \fIsha224\fR, \fIsha256\fR, \fIsha384\fR, or \fIsha512\fR.  The default is
127 determined based on the type and size of the signature key.
128 .TP
129 .BI "\-f, \-\-outform " encoding
130 Encoding of the created certificate file. Either \fIder\fR (ASN.1 DER) or
131 \fIpem\fR (Base64 PEM), defaults to \fIder\fR.
132 .TP
133 .BI "\-b, \-\-ca"
134 Include CA basicConstraint extension in certificate.
135 .TP
136 .BI "\-u, \-\-crl " uri
137 CRL distribution point URI to include in certificate. Can be used multiple
138 times.
139 .TP
140 .BI "\-I, \-\-crlissuer " issuer
141 Optional CRL issuer for the CRL at the preceding distribution point.
142 .TP
143 .BI "\-o, \-\-ocsp " uri
144 OCSP AuthorityInfoAccess URI to include in certificate. Can be used multiple
145 times.
146 .TP
147 .BI "\-p, \-\-pathlen " len
148 Set path length constraint.
149 .TP
150 .BI "\-n, \-\-nc-permitted " name
151 Add permitted NameConstraint extension to certificate. For DNS or email
152 constraints, the identity type is not always detectable by the given name. Use
153 the
154 .B dns:
155 or
156 .B email:
157 prefix to force a constraint type.
158 .TP
159 .BI "\-N, \-\-nc-excluded " name
160 Add excluded NameConstraint extension to certificate. For DNS or email
161 constraints, the identity type is not always detectable by the given name. Use
162 the
163 .B dns:
164 or
165 .B email:
166 prefix to force a constraint type.
167 .TP
168 .BI "\-M, \-\-policy-mapping " issuer-oid:subject-oid
169 Add policyMapping from issuer to subject OID.
170 .TP
171 .BI "\-E, \-\-policy-explicit " len
172 Add requireExplicitPolicy constraint.
173 .TP
174 .BI "\-H, \-\-policy-inhibit " len
175 Add inhibitPolicyMapping constraint.
176 .TP
177 .BI "\-A, \-\-policy-any " len
178 Add inhibitAnyPolicy constraint.
179 .PP
180 .SS "Certificate Policy"
181 Multiple certificatePolicy extensions can be added. Each with the following
182 information:
183 .TP
184 .BI "\-P, \-\-cert-policy " oid
185 OID to include in certificatePolicy extension. Required.
186 .TP
187 .BI "\-C, \-\-cps-uri " uri
188 Certification Practice statement URI for certificatePolicy.
189 .TP
190 .BI "\-U, \-\-user-notice " text
191 User notice for certificatePolicy.
192 .
193 .SH "EXAMPLES"
194 .
195 To save repetitive typing, command line options can be stored in files.
196 Lets assume
197 .I pki.opt
198 contains the following contents:
199 .PP
200 .EX
201   --cacert ca_cert.der --cakey ca_key.der --digest sha256
202   --flag serverAuth --lifetime 1460 --type pkcs10
203 .EE
204 .PP
205 Then the following command can be used to issue a certificate based on a
206 given PKCS#10 certificate request and the options above:
207 .PP
208 .EX
209   pki --issue --options pki.opt --in req.der > cert.der
210 .EE
211 .PP
212 .
213 .SH "SEE ALSO"
214 .
215 .BR pki (1)