純粹技術資料筆記
先前寫的 2.設定PostgreSQL,參考了官方教學手冊的設定,操作如下:
su - postgres psql -d template1 psql> create user openca with password 'openca' createdb nocreateuser; psql> \q psql -d template1 -U openca psql> create database openca; psql> \q如此一來我們就建了一個openca的資料庫,還有一個使用者帳號openca,密碼同openca (如果你postgreSQL沒有跟openCA擺在一起的話,要設定一下連線來源) 3. 安裝OpenSSL, LDAP Library, Perl module,Apache+mod_ssl 請參考成大的投影片 不過投影片在openca安裝那邊有些地方有點錯誤,請跳過.. 如果你是ubuntu的使用者,在安裝mod_ssl-2.8.22-1.3.33發生錯誤訊息的話,請輸入
rm -f /bin/sh ln -s /bin/bash /bin/sh原因不明,但是It works ;-) 接著來到/usr/local/openra/OpenCA目錄下,先修改var目錄與etc/servers的權限: chmod -R 777 var cd etc/servers chmod -R 644 * 最後回到etc目錄,修改最麻煩的config.xml,修改前請先將config.xml備份,不然改錯了很麻煩。 這個部份還是麻煩看一下投影片,有幾個地方是一定要做修改的: ca_organization -> CA ca_locality -> KH ca_country -> TW 再來請看一下資料庫設定的地方有沒有錯誤,這邊請再三確認,如果你後面已經用了./configure_etc的話,好像再怎麼改都沒有用了。 特別注意db_namespace這個地方,我不確定0.9.3-rc1是不是有用預設,但是如果你看到他的value有東西的話,請把它刪掉,那是給oracle用的,如果你忘了改的話,最後上線後可能沒辦法做Database Initalization。 往下搜尋[exchange]關鍵字,應該會到dataexchange configuration的部份,請將0.的部份用<!-- -->註解掉(這邊別弄混打成--!%gt; 我在這邊卡了一個多小時看到mail-list才發現我破壞了XML文件的完整度,而安裝程式也沒給任何錯誤提示...), 然後把2.有關RA被comment掉的部份取消。 再往下找[device]關鍵字,這邊是dataexchage的裝置,預設值是指到/dev/fd0 這個是軟碟機,不過這個年代應該很少人用了,真正講究一點的話CA跟RA主機應該是分開的,可以將參數指到USB隨身碟去,之前有爬到有人直接開nic丟過去(兩台電腦+一條cross-over網路線),我這邊列出最後我參考到的參數,路徑的部份要稍微留心一下,不然最後ca-node要丟東西給ra-node會有問題。
RA: config.xml: node acts as an RA only dataexchange_device_up: Replace /dev/fd0 改成 /usr/local/openca/OpenCA/var/tmp/ca-down dataexchange_device_down: Replace /dev/fd0 改成 /usr/local/openra/OpenCA/var/tmp/ra-down dataexchange_device_local: Replace /dev/fd0 改成 /usr/local/openra/OpenCA/var/tmp/ra-local都好了之後請執行configure_etc.sh,如果你的config.xml格式正確的話應該會順利輸出,如果結構有問題的話會跳出utf8_latin1_selector.sh找不到的錯誤(天曉得最後是config.xml的問題...) 都OK的話就可以先啟動RA了 找一下dataexchage的部份,一樣把0.的部份comment掉,然後把1.的CA部份的註解拿掉。 最後是dataexchage裝置的部份,我最後使用的參數如下:
dataexchange_device_up: Replace /dev/fd0 改成 /usr/local/openca/OpenCA/var/tmp/ca-up dataexchange_device_down: Replace /dev/fd0 改成 /usr/local/openca/OpenCA/var/tmp/ca-down dataexchange_device_local: Replace /dev/fd0 改成 /usr/local/openra/OpenCA/var/tmp/ra-local都好了之後請執行configure_etc.sh,都OK的話就可以啟動CA了 其實剩下來的部份問題比較少,主要是Apache設定與Alias有關的部份有沒有設定正確 httpd.conf裡有關路徑的設定應該是這樣的:
#OpenCA Alias /ca /usr/local/openca/httpd/htdocs/ca/ Alias /ca-node /usr/local/openca/httpd/htdocs/ca-node/ ScriptAlias /cgi-bin/ca/ /usr/local/openca/httpd/cgi-bin/ca/ ScriptAlias /cgi-bin/ca-node/ /usr/local/openca/httpd/cgi-bin/ca-node/ #OpenRA Alias /ra /usr/local/openra/httpd/htdocs/ra/ Alias /ra-node /usr/local/openra/httpd/htdocs/ra-node/ Alias /pub /usr/local/openra/httpd/htdocs/pub/ Alias /ldap /usr/local/openra/httpd/htdocs/ldap/ ScriptAlias /cgi-bin/ra/ /usr/local/openra/httpd/cgi-bin/ra/ ScriptAlias /cgi-bin/ra-node/ /usr/local/openra/httpd/cgi-bin/ra-node/ ScriptAlias /cgi-bin/pub/ /usr/local/openra/httpd/cgi-bin/pub/ScriptAlias /cgi-bin/ldap/ /usr/local/openra/httpd/cgi-bin/ldap/
請耐住性子去設, 另外有個部份是投影片沒提到的, 如果你到最後openca_rc啟動之後, 進入web管理介面跳出說密碼長度過短之類的訊息, 請在設定每個CGI目錄都加一個 SSLOptions +StdEnvVars 的設定, 例:SSLOptions +StdEnvVars AllowOverride None Options ExecCGI Order allow,deny Allow from all < /directory> <directory> SSLOptions +StdEnvVars AllowOverride None Options ExecCGI Order allow,deny Allow from all < /directory> <directory> SSLOptions +StdEnvVars AllowOverride None Options FollowSymLinks Indexes Order allow,deny Allow from all < /directory> <directory> SSLOptions +StdEnvVars AllowOverride None Options FollowSymLinks Indexes Order allow,deny Allow from all < /directory> &ly;directory> SSLOptions +StdEnvVars AllowOverride None Options FollowSymLinks Indexes Order allow,deny Allow from all < /directory>
<directory> SSLOptions +StdEnvVars AllowOverride None Options ExecCGI Order allow,deny Allow from all < /directory>至於LDAP的部份,這邊的記錄只有到把service帶起來而已,詳細設定請參考相關文件 安裝OpenLDAP 啟動OpenLDAP
su root -c /usr/local/libexec/slapd重新啟動apache,可以嘗試連線到http://localhost/ca (一共要測ca, ca-node, ra, ra-node,pub看看有沒有問題),如果能正常啟動的話就請參考投影片去做初始化的動作了。隱藏文章的部份