>From the logs I see, I can deduce that openssl expects to find the key file at:
./etc/ssl/private/strongswanKey.pem
which according to the bash prompt, is:
/etc/ipsec.d/cacerts/etc/ssl/private/strongswanKey.pem
That doesn't look like the normal way of doing things, so I am assuming
it is wrong. I am guessing that you need to set dir like this (absolute
path):
dir = /etc/ssl
You had it set as : ./etc/dir, which is relative to the current working
directory (probably not what you intended).
Regards,
Dimitrios Siganos
Sushil Chaudhari wrote:
> Hi Everyone,
>
> I am trying to sign the user certificate from the certification authority bus
> getting the following error:
>
> r...@sushil:/etc/ipsec.d/cacerts# openssl ca -in moonReq.pem -days 730 -out
> moonCert.pem -notext
> Using configuration from /usr/lib/ssl/openssl.cnf
> Error opening CA private key ./etc/ssl/private/strongswanKey.pem
> 17427:error:02001002:system library:fopen:No such file or
> directory:bss_file.c:352:fopen('./etc/ssl/private/strongswanKey.pem','r')
> 17427:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
> unable to load CA private key
>
>
> My openssl.cnf is as follows:
> #
> # OpenSSL example configuration file.
> # This is mostly being used for generation of certificate requests.
> #
>
> # This definition stops the following lines choking if HOME isn't
> # defined.
> HOME = .
> RANDFILE = $ENV::HOME/.rnd
>
> # Extra OBJECT IDENTIFIER info:
> #oid_file = $ENV::HOME/.oid
> oid_section = new_oids
>
> # To use this configuration file with the "-extfile" option of the
> # "openssl x509" utility, name here the section containing the
> # X.509v3 extensions to use:
> # extensions =
> # (Alternatively, use a configuration file that has only
> # X.509v3 extensions in its main [= default] section.)
>
> [ new_oids ]
>
> # We can add new OIDs in here for use by 'ca' and 'req'.
> # Add a simple OID like this:
> # testoid1=1.2.3.4
> # Or use config file substitution like this:
> # testoid2=${testoid1}.5.6
>
>
> [ ca ]
> default_ca= CA_default# The default ca section
>
>
> [ CA_default ]
>
> #dir = ./demoCA # Where everything is kept
> dir = ./etc/ssl
> certs = $dir/certs# Where the issued certs are kept
> crl_dir = $dir/crl # Where the issued crl are kept
> database = $dir/index.txt# database index file.
> #unique_subject = no# Set to 'no' to allow creation
> of
> # several ctificates with same subject.
> new_certs_dir = $dir/newcerts # default place for new certs.
>
> #certificate = $dir/cacert.pem # The CA certificate
> certificate = $dir/strongswanCert.pem
> serial= $dir/serial # The current serial number
> crlnumber = $dir/crlnumber# the current crl number
> # must be commented out to leave a V1
> CRL
> crl = $dir/crl.pem # The current CRL
> #private_key = $dir/private/cakey.pem# The private key
> private_key = $dir/private/strongswanKey.pem
> RANDFILE = $dir/private/.rand# private random number file
>
> x509_extensions = usr_cert # The extentions to add to the
> cert
>
> # Comment out the following two lines for the "traditional"
> # (and highly broken) format.
> name_opt = ca_default# Subject Name options
> cert_opt = ca_default# Certificate field options
>
> # Extension copying option: use with caution.
> # copy_extensions = copy
>
> # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
> # so this is commented out by default to leave a V1 CRL.
> # crlnumber must also be commented out to leave a V1 CRL.
> # crl_extensions = crl_ext
>
> default_days = 365 # how long to certify for
> default_crl_days= 30 # how long before next CRL
> default_md= sha1 # which md to use.
> preserve = no# keep passed DN ordering
>
> # A few difference way of specifying how similar the request should look
> # For type CA, the listed attributes must be the same, and the optional
> # and supplied fields are just that :-)
> policy= policy_match
>
> # For the CA policy
> [ policy_match ]
> countryName = match
> stateOrProvinceName = match
> organizationName = match
> organizationalUnitName= optional
> commonName= supplied
> emailAddress = optional
>
> # For the 'anything' policy
> # At this point in time, you must list all acceptable 'object'
> # types.
> [ policy_anything ]
> countryName = optional
> stateOrPro