OpenCA Guide for Versions 0.9.2+


Table of Contents

Introduction
I. Design Guide
Preface
1. General Design
1. Basic Hierarchy
2. Interfaces
2.1. Node
2.2. CA
2.3. RA
2.4. LDAP
2.5. Pub
3. Configuration
4. Database
5. Interface
6. Life cycle of the objects
7. Sub-Ca
7.1. Example 1
7.2. Example 2
2. Recommendations
1. Hardware Issues
1.1. Time
1.2. Failing disks
1.3. Hardware monitoring
2. Physical Security
2.1. Safes and Data organization
2.2. Buildings
3. Network Issues
4. Certificate Issues
4.1. CDPs
4.2. Application specific problems
5. Organizational Aspects
5.1. Dual Access Control
5.2. Privacy vs. Security
5.3. Enforcement of Access Control
5.4. Privacy Officer Integration
5.5. Enterprise Integration
5.6. Parallel use of several end user PKIs
II. Installation and Configuration Guide
Preface
3. Installation
1. Preparations
1.1. Software
1.2. Hardware
2. Configure
2.1. Host System Configuration
2.2. Filesystem paths
2.3. Webserver specific stuff
2.4. Email
2.5. Compiling features
3. Installation
4. config.xml (for RPMs and DEBs too)
4.1. Configuration sections of config.xml
4.2. How to setup two management interfaces on one server?
4. Configuration
1. Access Control
1.1. Channel verification
1.2. Login
1.3. Session management
1.4. ACLs
2. Token and keyconfiguration
2.1. OpenSSL
2.2. Empty
2.3. LunaCA3
2.4. nCipher
2.5. OpenSC
3. OpenSSL
3.1. Certificate Extensions
3.2. Profiles
4. CSRs
4.1. Additional Attributes
4.2. PKCS#10 Requests
4.3. Basic CSR
4.4. SCEP
5. Subject
5.1. Common stuff
5.2. dc style
6. Subject Alternative Name
7. LDAP
7.1. Configuration of the Directory
7.2. Configuration of the online components
7.3. Writing Certificates to the Directory
7.4. Adding an attribute to the LDAP schema
8. SCEP
8.1. OPENCADIR/etc/servers/scep.conf
8.2. OPENCADIR/etc/config.xml
9. Dataexchange
9.1. Configuration
9.2. Adding a new node
10. Databases
10.1. PostgreSQL
10.2. MySQL
10.3. Oracle
10.4. DBM Files
11. Email
11.1. Sendmail with basic SMTP authentication
III. User Guide
Preface
5. Interface Descriptions
1. Public PKI Server
1.1. General
1.2. CA Infos
1.3. User
1.4. Certificates
1.5. Requests
1.6. Language
2. Registration Authority
2.1. General
2.2. Active CSRs
2.3. Active CRRs
2.4. Information
2.5. Utilities
3. Registration Authority Node
3.1. General
3.2. Administration
3.3. Utilites
3.4. Logs
4. LDAP Interface
4.1. Update LDAP
4.2. View CA-Certificates
4.3. View Certificates
4.4. View CRLs
6. Functionality Descriptions
1. CA Initialization
1.1. Phase I: Initialize the Certification Authority
1.2. Phase II and III: Create the initial administrator and RA certificate
2. Node Initialization
3. CSR Handling - a request HOWTO
3.1. Ways to request a certificate
3.2. Edit a certificate signing requests
3.3. Approve certificate signing requests
3.4. Issue a certificate from a certificate signing request
3.5. Certificate enrollment
3.6. Delete certificate signing requests
4. Certificate Handling
4.1. Find a certificate
4.2. Download
4.3. Start revocation
4.4. Write an email to the owner
4.5. Informational messages and their meaning
5. SCEP
5.1. SSCEP
5.2. NetScreen ScreenOS
5.3. F-Secure VPN+
5.4. Cisco PIX
7. Client Support
1. Introduction
2. Mozilla
2.1. General
2.2. Mozilla
2.3. Netscape 4
2.4. Opera
3. Microsoft
3.1. Domaincontroller
3.2. Smartcard Logon
3.3. Keystore
3.4. Internet Explorer
3.5. Outlook
3.6. Outlook Express
IV. Technology Guide
Preface
8. Introduction
1. Slotechnology
9. XML
10. Cryptolayer
11. Accesscontrol
12. Logging
13. Webinterfaces
1. Interfacebuilding
1.1. Technology overview
1.2. Customization capabilities
2. CSS
3. Configuration after installation
14. Hierarchy
1. Nodemanagement
2. Dataexchange
15. LDAP
1. LDAP schema specification
1.1. Used objectclasses
1.2. Supported attributes
1.3. Common definitions for distinguished names
1.4. Special definitions for user certificates
2. Sourcecodeorganization
2.1. Structure of the code
2.2. The relevant commands
2.3. export-import.lib
2.4. ldap-utils.lib
2.5. OpenCA::LDAP
16. Batch System
1. Requirements
2. Design
3. Data Import
4. Change the workflow
5. Default workflow
6. What about the different crypto tokens?
7. Performance
7.1. PIII 850MHz, 256 MB RAM
17. Packaging
1. Common Notices
1.1. Required Perl modules
2. RPM-based system
2.1. RedHat/Feodora
2.2. SuSE
3. Debian
4. BSD
18. Software Design (legacy from design guide)
1. Database(s)
2. Interface construction
3. openca.cgi
4. libraries
5. modules
6. commands
7. Dataexchange and Node management
A. History
1. PKI Scenario before OpenCA
2. PKI and eGovernment
3. Internet Standards
4. The Project's Purposes
5. The Project's Achievements
6. The OpenCA Project
6.1. The project start
6.2. Offering Help to Other Projects: OpenSSL
6.3. CVS and Mailing Lists
6.4. The Open Source Choice
6.5. Migrating to SourceForge
B. References
1. Universities
C. Internationalization - i18n
1. de_DE
2. it_IT
3. ja_JP
4. pl_PL
5. sl_SI
D. Authors and Contributors
1. Martin Bartosch
2. Michael Bell
3. Chris Covell
4. Massimiliano Pala
5. Ulrich Bathels
6. Ashutosh Jaiswal
7. FAQ
E. FAQ
1. General PKI Issues
1.1. What is a certificate?
1.2. Which informations does a certificate contain?
1.3. What is a request?
1.4. Which information does a CSR contain?
1.5. What is a CA?
1.6. Why should I not place the CA on the same machine like the RA?
1.7. What is an extensions?
1.8. I use Windows 2000 and Internet Explorer 6 SP1 and it don't show any CSPs.
1.9. How can I setup a sub CA?
2. General OpenCA Issues
2.1. Does it be possible to revoke a certificate without any user interaction?
2.2. I try to add a role and get the message The role XYZ exists already!
2.3. All cryptographic operations fail.
2.4. Apache's error_log reports a nonexistent option -subj of openssl req
2.5. Apache's error_log contains a message from IBM DB2 that the environment is not setted
2.6. What do the new features of 0.9.2 be?
2.7. I try to approve and sign a request with Mozilla and it fails.
2.8. I try to approve and sign a request with Konqueror (KDE) and it fails.
2.9. How is the format of the disc to import the CA certificate from the root CA?
2.10. OpenSSL reports entry 1: invalid expiry date
2.11. Outlook cannot encrypt mail with imported certificate
2.12. My Outlook freezes after I received a signed email
2.13. General Error 6751 during certificate issuing
2.14. What does I have to do if I create a new release?
2.15. How can I configure Mozilla for OCSP?
2.16. Error 7211021: Cannot create request!
3. Installation Issues
3.1. FreeBSD, OpenBSD and OpenCA
3.2. Solaris and OpenCA
3.3. What is a hierarchy level?
3.4. Undefined subroutine &main::xyz
3.5. Symbolic link installaton failed
3.6. After the installation all common parts are missing
3.7. Conflicting Modules
3.8. The xml path to the access control is missing
3.9. Unknown Login Type
3.10. Type Mismatch during request generation with Internet Explorer
3.11. openca(_rc) start failed
3.12. Missing modules
4. Configuration Issues
4.1. How can I configure my httpd.conf for virtual hosts?
4.2. How can I configure virtual hosts with ./configure?
4.3. I have some users which should not be published in LDAP. Does it be possible with OpenCA?
4.4. Does it be possible to authenticate users by their certificates at the apache before they will be authenticated by OpenCA itself?
4.5. I want to update my 0.9.2 installation. Is this dangerous?
4.6. I want update to 0.9.2. How can I update my sql database?
4.7. If I run openca-ocspd then I obtain a segmentation fault.
4.8. I installed a second public interface, run configure_etc.sh and now are all the paths in the other public interface wrong.
4.9. I issue a certificate for a mailserver but sendmail doesn't work and reports an errormessage which includes reason=unsupported certificate purpose
4.10. My (Microsoft) client hangs after it tries to start a secured connection
4.11. Outlook freezes when receiving a signed Mail but worked already fine for some days
4.12. During the request generation OpenCA fails and reports a too short textfield
4.13. Can I place my organization's logo on the web interface?
4.14. Cannot create new OpenCA tokenobject
4.15. How can I use a Luna token with OpenCA 0.9.1
4.16. How can I include a complete certificate chain into a PKCS#12 file?
4.17. Unknown login type
4.18. Cannot initialize cryptoshell but OpenSSL path is correct
4.19. Emailaddress in subjectAltName but not in CA subject
4.20. Missing environment variables from SSL
4.21. Problems with the country name during PKCS#10 requests
5. Access Control problems
5.1. Always get a login screen - again and again
5.2. Error 6251023: Aborting connection - you are using a wrong channel
5.3. Error 6251026: Aborting connection - you are using a wrong security protocol
5.4. Error 6251029: Aborting connection - you are using the wrong computer
5.5. Error 6251033: Aborting connection - you are using a wrong asymmetric cipher
5.6. Error 6251036: Aborting connection - you are using a too short asymmetric keylength
5.7. Error 6251039: Aborting connection - you are using a wrong symmetric cipher
5.8. Error 6251043: Aborting connection - you are using a too short symmetric keylength
6. Dataexchange
6.1. I try to export something but I get error 512 permission denied for /dev/fd0
6.2. I try to import the CA certificate but it doesn't work.
6.3. I crashed the database of the online server and now I want to import all data again. How can I do it?
6.4. I try to export the requests to the CA but it doesn't work
7. LDAP
7.1. Errormessage: Connection refused.
7.2. Errormessage: Bind failed. Errorcode 49.
7.3. The resultcode of the nodeinsertion was 65.
7.4. How can I get more debugging messages from OpenCA's LDAP code?
7.5. How can I get more debugging messages from OpenLDAP?
8. Internationalization
8.1. How can I fix a misspelling for a language?
8.2. How can I add a new language?
8.3. The compilation/make fails on the Perl module gettext
8.4. MySQL and SET NAMES errormessages
Bibliography
Glossary
F. Strategy
1. The Strategy Behind OpenCA Development
1.1. Scalability
1.2. Command Line API to CA and RA Functions
1.3. Automation functions
1.4. On-line CA model option
1.5. High Risk Environment Mode
1.6. Audit logging
1.7. Script/environment validation
1.8. Automated CA Key rollover
1.9. Function to process signing and encryption keys in one go
1.10. Secure storage and recovery of encryption keys
1.11. Web based OpenCA configuration and management
1.12. Improved key lifecycle management
1.13. Authentication via a third party
1.14. Improved debugging support
1.15. Improved error handling
1.16. Accreditation

List of Figures

1.1. Database oriented view
1.2. Logical data view
1.3. Complete technical overview
1.4. Life cycle of objects
4.1. Passes of the accesscontrol
4.2. Passphrase based login
4.3. Tokenconcept
6.1. Phases of the CA initialization
6.2. Phase I of the CA initialization
6.3. Phase II of the CA initialization
6.4. Phase III of the CA initialization
7.1. Request a certificate
10.1. Example cryptolayer with tokens
11.1. Passes of the accesscontrol
11.2. Channel verification
11.3. Identification of the user
11.4. Access control list
15.1. LDAP source schema

List of Tables

3.1. External Perl modules
3.2. Supported parameters for host configuration
4.1. Additional attributes configuration
4.2. Generic basic CSR configuration
4.3. Common stuff configuration
15.1. Schema usage
15.2. Schema usage for user certificates
16.1. Default OpenCA workflow
16.2. 1000 User test
E.1. Texttypes for different databases

List of Examples

3.1. Module ID calculation
4.1. channel configuration
4.2. Login and Passphrase configuration
4.3. External program authentication configuration
4.4. Authentication with certificates
4.5. Session configuration
4.6. Basic ACL configuration
4.7. Permission for serverInfo
4.8. Allow all
4.9. Configuration of HSM Login/logout in menu.xml
4.10. Configuration of token.xml for nCipher
4.11. OpenSSL configuration - Authority Key Identifier
4.12. Minimal SSL client extensions
4.13. Minimal SSL server extensions
4.14. Minimal SMTP extensions for a single certificate
4.15. Additional attributes configuration
4.16. PKCS#10 configuration
4.17. Basic CSR configuration
4.18. Configuration example for a XML file based HTML-select
4.19. suffix in ldap.xml
4.20. excluded roles in ldap.xml
4.21. Schema extension for RDN uid_special
4.22. Download configuration
4.23. Export configuration
4.24. Local export configuration
4.25. OpenCA rc script that sources Oracle environment
4.26.
4.27. /etc/mail/sendmail.mc
6.1. SSCEP configuration
7.1. OpenSSL 0.9.7 key usage and extended key usage for DCs
7.2. OpenSSL 0.9.7 subjectAltName for DCs
7.3. OpenSSL 0.9.7 certificate template name for DCs
7.4. OpenSSL 0.9.8 subject alternative name section for DCs
7.5. extendedKeyUsage for clients
16.1. batch_new_user.txt
16.2. batch_new_process.txt
16.3. batch_process_data.txt
17.1. SuSE packaging
E.1. General error 6751 during certificate issueing
E.2. Bad passphrase error log during certificate issueing
E.3. Error 7211021: Cannot create request!
E.4. Full errormessage for missing functions
E.5. Already present symbolic link
E.6. Search for XML::Twig modules
E.7. Type Mismatch on Internet Explorer
E.8. Failed startup with wrong Net::Server version
E.9. failing XML parsing during configuration
E.10. failing XML parsing during configuration
E.11. empty Twig.pm files because of missing XML::Parser
E.12. virtual host configuration
E.13. ./configure and virtual hosts
E.14. Client authentication with mod_ssl
E.15. OCSP configuration for LDAP
E.16. OCSP configuration for http
E.17. emailaddress for subjectAltName in CA certs
E.18. Missing mod_ssl standard environment variables
E.19. SSL environment variable configuration for Apache
E.20.
E.21. Failed request upload