.. index:: wizard (wizard) .. _wizard: Certificate Input Dialog ======================== This input dialog is the central part for collecting all data regarding certificates, requests and templates. It will be invoked whenever such an item is going to be created or, in case of a template, is altered. .. index:: wizard_src (wizard_src) Source ------ This page is not shown when creating or changing templates. Signing Request ............... If it is desired to either enroll a certificate from a PKCS#10 request by a local CA, or to create a certificate from a request by self-signing it, the request can be selected here. In the later case the private key of the request must be available. Signing ....... Either self-signing or the CA certificate for signing may be selected here. Additionally, the desired signing algorithm can be adjusted. The drop-down list contains all :ref:`ca_cert` with an available private key. Signature Algorithm ................... Usually SHA256 or higher should be used, but since older windows versions including XP can not handle them, you may opt to use SHA1. The default signing algorithm may be selected by the *Options* menu. Templates ......... The fields of the certificate can be preset by the values of a template by selecting it and clicking *Apply all*. Templates can be mixed by applying the subject of one template and then applying the extensions of an other by using the buttons *Apply subject* and *Apply extensions* .. index:: wizard_subject (wizard_subject) Personal Settings ----------------- Subject ....... On this Page all personal data like country, name and email address can be filled in. The *Country code* field must either be empty or exactly contain two letters representing your country code; e.g. *DE* for Germany. If you want to create an SSL-server certificate the *Common name* must contain the DNS name of the server. The subject-alternative-name extension must be used to define additional DNS names, even wildcards. In this case the CommonName must be repeated here, because TLS clients disregard the CommonName in case the subject-alternative-name extension exists. If the *internal name* is empty, the common name will be used as internal name. It will also be used as default internal name, if a new key is created here. Other rarely used *name-entries* can be selected in the dialog below. By using this table instead of the explicit entries above, the order of the entries can be adjusted. A new line can be added via the *Add* button. The current line can be deleted via the *Delete* button. Existing lines can be exchanged and reordered by moving the row-header (containing the row-number) around. All items can be added more than once, even those from above. This is not very usual but allowed. The list of the 7 explicit distinguished name entries may be adjusted in the options dialog at :ref:`options` Private Key ............ Keys can be generated here "on the fly" by pressing the button. The name of the new key will be preset by the common name of the certificate. The newly generated key will be stored in the database and stay there, even if the input dialog is canceled. The drop-down list of the keys only contains keys that were not used by any other certificate or request. The key-list is not available for creating or changing templates. By checking *Used keys too* the list contains all available keys. Use this with care. You're likely doing something wrong when using this option. This tab does not appear when signing a request, because the request contains all needed data from this tab. Select "Modify subject of the request", if you want to modify it anyway. The content of the subject Tab will then be preset with the content of the request. .. index:: wizard_extensions (wizard_extensions) .. index:: wizard_keyusage (wizard_keyusage) .. index:: wizard_netcape (wizard_netcape) X509v3 Extensions ----------------- The next three tabs contain all fields for adjusting the certificate extensions. It is not in the focus of this document to explain them all in detail. The most important are the *Basic Constraints* and the *Validity* range. More details can be found in `RFC5280 `_. Basic Constraints ................. If the type is set to *Certification Authority*, the certificate is recognized by XCA and other instances as issuer for other certificates. Server-certificates or E-Mail certificates should set this extension to *End entity* (strongly recommended) or disable it completely by setting it to *Not defined* Validity Range .............. The *Not before* field is set to the current date and time of the operating system and the *Not after* field is set to the current date and time plus the specified time range. When applying time ranges, the expiry date (not after) is calculated by taking the currently configured start date (not before) and adding the time range. For templates the specified times are not saved, because it does not make much sense. Rather the time range is stored and automatically applied when selecting this template. Applying the time range means to set notBefore to "now" and notAfter to "now + time range". If the *midnight* button is set both dates will be rounded down and up to midnight. Subject Alternative Name ........................ The subject alternative name accepts a special entry *DNS:copycn*. This will copy the *commonName* entry frome th subject as DNS entry. .. index:: wizard_advanced (wizard_advanced) Advanced ........ Any extension, not covered on the other tabs can be added here as defined in OpenSSL nconf. The validity can be checked by clicking *Validate*. All extensions from all tabs will be shown here to see them all in their final form. Click on *Edit* to continue editing the extensions here. Refer to the OpenSSL X509v3 configuration for more details: https://www.openssl.org/docs/manmaster/man5/x509v3_config.html Certificate Policies '''''''''''''''''''' The following example of *openssl.txt* also works in the advanced tab to define certificate policies .. code-block:: ini certificatePolicies=ia5org,1.2.3.4,1.5.6.7.8,@polsect [polsect] policyIdentifier = 1.3.5.8 CPS.1="http://my.host.name/" CPS.2="http://my.your.name/" userNotice.1=@notice [notice] explicitText="Explicit Text Here" organization="Organisation Name" noticeNumbers=1,2,3,4 Adding more than one AuthorityInfoAccess entry is also possible here: .. code-block:: ini authorityInfoAccess=@aia_sect [aia_sect] OCSP;URI.1=http://www.some.responder.org/ OCSP;URI.2=http://www.some.other-responder.org/ caIssuers;URI.3=http://server.whatever.org/cert-path caIssuers;URI.4=ldap://server.whatever.org/xxx,yyy When exporting existing Certificates to templates, the extensions will be translated to OpenSSL config file format.