On Thu, 2008-12-11 at 18:57 -0500, John A. Sullivan III wrote: > On Thu, 2008-12-11 at 18:54 -0500, John A. Sullivan III wrote: > > On Thu, 2008-12-11 at 13:10 -0500, John A. Sullivan III wrote: > > > Hello, all. We have a small, low security client for which we are doing > > > an installation of OpenCA-1.0.2. It is actually an upgrade from 0.9.2 > > > and a transfer to new equipment. We have already separated the RA and > > > CA. The would now like to separate the pub interface from the RA. > > > > > > To avoid having two complete sets of node transfers, I thought we would > > > try using a single shared database and wanted to share my thoughts about > > > both security and how to do this to see if I am making any dumb mistakes > > > with this approach. > > > > > > The CA and RA are normally left powered down. This is why they would > > > like to separate the Pub - for automated CRL fetching via http as well > > > as for the ease of having some access to the system without having to > > > start up the CA or RA. > > > > > > I was thus thinking of storing a single instance of the database on the > > > pub server. My first thought was this is security madness. Then I > > > realized, there is nothing in the database that is not already exposed > > > by the pub interface - keys, certs, crls, reqs - all are made available > > > via pub. Thus, there is no security compromise. > > > > > > FIRST QUESTION: > > > Is this understanding about no security compromise by putting the shared > > > database on the pub server correct? > > > > > > SECOND QUESTION: > > > Is it correct to assume that a shared database eliminates the need for > > > data transfer via the node interface? > > > > > > THIRD QUESTION: > > > Assuming #2 is true, is it correct to assume I still need to install a > > > node on the CA for utility functions like backup, cleanup, rebuild > > > chain, etc.? > > > > > > FOURTH QUESTION: > > > Do I need a node on the other interfaces even with a shared database? > > > For example, the restore procedure on the node not only initializes and > > > restores the database but also rebuilds openssl's database and next > > > serial number. How does one do this on the pub and RA interfaces if > > > there is only a node on the CA? Is it necessary? What about rebuilding > > > the CA chain? Do I need to manually copy in the CA cert and hash link to > > > the RA and pub servers? > > > > > > PROCEDURE: > > > I'm assuming I do the following: > > > 1) Setup the database skeleton on the public server > > > 2) Install the CA and CA Node (make install-offline) pointing the > > > database to the database on the public server. > > > 3) Initialize and restore the database and then rebuild the openssl > > > database through the CA node. > > > 4) Install the RA (make install-ra) pointing the database to the > > > database on the public server. > > > 5) Manually copy the regular files in the CA's crypto/cacerts directory > > > to the RA's crypto/cacerts directory. > > > 6) Manually copy the files other than Makefile from the CA's > > > crypto/chain directory to the RA's crypto/chain directory. > > > 7) Install the pub interface (make install-pub) pointing the database to > > > localhost. > > > 8) Manually copy the regular files in the CA's crypto/cacerts directory > > > to pub's crypto/cacerts directory. > > > 9) Manually copy the files other than Makefile from the CA's > > > crypto/chain directory to pub's crypto/chain directory. > > > 10) Stand back and watch it all magically work as I create requests in > > > pub, approve them in the RA, issue them in the CA, retrieve them from > > > either RA or pub and all without doing a node transfer. > > > > > > FINAL QUESTION: > > > Is this procedure and expected outcome correct? > > > > > > Thanks - John > > > > It looks like the configure_etc.sh calls something which requires a > > node.conf. I am assuming that means we need a node even if we are using > > a shared database. Is it that the shared database eliminates the need > > for data exchange but not the need for the node? Thanks - John > Oops! Forgot to include the error message: > Error while loading configuration > (/opt/OpenCA/RA/etc/openca/servers/node.conf)!Content-type: text/html > <snip> It initially looked as if using the shared database as described above was working wonderfully well. It dramatically streamlined the procedure for processing requests. However, we suddenly cannot download the latest CRL or the CA certificate from the pub, ra, or ca interfaces. The results are somewhat disconcerting and may be related to bypassing transfer through the node.
I tried retrieving the CRL from the home page of the pub interface. I chose the pem format and received a 403 forbidden error. That seemed strange. I assumed the latest crl was stored in var/openca/crypto/crls so I looked in that directory and it was empty. I experienced the same results when trying to download the CA certificate. I then tried doing the same from the ra interface and this time received a 404 file not found error. I looked in and it was also empty. My CA and RA are on the same server. It also failed when trying from the ca interface. I then went to the ca node and enrolled and then downloaded. Now I had files in var/openca/crypto/crls. However, when trying to access them from the ra interface, I still received a 404. The files are owned by user and group apache. I copied the crls directory to var/openca/crypto/crls on the pub interface and now I can download the latest crl successfully. This raises several important questions: FIRST QUESTION: It appears the latest crl is not fetched from the database but rather from the file system. Is this correct? SECOND QUESTION: Is it really possible to forgo all the node transfers when using a shared database or does one need to do so anyway (which defeats the purpose of the shared database)? On the same subject, can one simply copy the files as I did? In that case, what causes the directories on the CA to be populated? Node enrollment? THIRD QUESTION: If one can simply do a copy, what else is done by the node data exchange? In other words, what else do I have to copy and are there any other functions I must perform? We were all set to implement this in production until we hit this issue. Any help to resolve it would be greatly appreciated. Thanks - John -- John A. Sullivan III Open Source Development Corporation +1 207-985-7880 jsulli...@opensourcedevel.com http://www.spiritualoutreach.com Making Christianity intelligible to secular society ------------------------------------------------------------------------------ SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. The future of the web can't happen without you. Join us at MIX09 to help pave the way to the Next Web now. Learn more and register at http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ _______________________________________________ Openca-Users mailing list Openca-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openca-users