zoukankan      html  css  js  c++  java
  • (筆記)Install OpenCA with PostgreSQL

    | | Comments (0) | TrackBacks (0)
    純粹技術資料筆記
    前前後後弄了快兩週,各種奇奇怪怪的事情幾乎都給我碰上了。最後的心得是OpenCA的mail-archive真的是好東西。下面的安裝記錄不一定照著做就能OK,但是我會註明一些安裝過程中可能比較有問題的(安裝過程中最討厭的部份是不會給你任何警告還是錯誤訊息,等到你整個跑起來才發現設定錯了) 安裝環境: Ububtu不知道幾板,我能不用apt-get就盡量不用,因此這個安裝記錄應該也能裝在freeBSD上頭才對 :) 基本上一定要裝的: OpenSSL: 這個沒裝應該是沒辦法動 Apache: 我是裝1.3.x系列的,module還要自己掛,設定的部份我會寫在別篇。 DBMS: 無痛安裝的話可以選用BerkeryDB,這個部份會遇到的問題應該是最少的。其次是mySQL,碰到的問題應該不會太大,最後是postgreSQL,如果你已經用mySQL用很習慣的話 switch到postgreSQL是個有點痛苦的課程,使用上跟觀念上有點差異。Oracle...不久的將來我應該會挑戰這個看看。這篇教學中我使用的是PostgreSQL 8.2.4 最後要特別強調的是,這個教學只有把OpenCA裝起來CA, RA, CA-node, RA-node能夠work而已,完全沒有Security的概念(不論是軟體設定面還是實體使用面),請自己參考各類文件把這些東西設定好。 1.安裝PostgreSQL,過程可以參考先前寫的 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 ;-) 最後是安裝最麻煩的OpenCA了,我裝的是0.9.3-rc1,我試了幾次參數的調整,這組應該是比較OK的,先裝RA: ./configure --prefix=/usr/local/openra --with-openssl-prefix=/usr/local/ssl --with-module-prefix=/usr/local/openra/modules --with-node-prefix=ra-node \ --with-web-host=localhost --with-httpd-user=nobody --with-httpd-goup=nobody --with-httpd-fs-prefix=/usr/local/openra/httpd --with-engine=no \ --enable-dbi --with-engine=no --enable-rbac --with-hierarchy-level=ra --enable-ocspd --with-db-type=Pg --with-db-user=openca --with-db-name=openca \ --with-db-host=localhost --with-db-port=5432 --with-db-passwd=openca 這一套參數最後會把RA安裝在/usr/local/openra底下,執行使用者為nobody/nobody(請檢查你的passwd有沒有這個人),使用的資料庫為postgreSQL(Pg),有幾個地方我用粗體字標起來,這個部份視需要修改。編譯及安裝: make ; make install-online; make clean (如果你看投影片在裝的話很容易搞混RA跟CA,這邊真的很容易搞混) 接著來到/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了 ./openca_rc start 再來回頭裝CA,安裝變數設定跟RA很像,但是有些地方不太一樣,小心別搞混了 : ./configure --prefix=/usr/local/openca --with-openssl-prefix=/usr/local/ssl --with-module-prefix=/usr/local/openca/modules --with-node-prefix=ca-node --with-web-host=localhost --with-httpd-user=nobody --with-httpd-goup=nobody --with-httpd-fs-prefix=/usr/local/openca/httpd --enable-ocspd --with-engine=no --enable-dbi --with-engine=no --enable-rbac --with-hierarchy-level=ca --with-db-type=Pg --with-db-user=openca --with-db-name=openca \ --with-db-host=localhost --with-db-port=5432 --with-db-passwd=openca 然後make ;make install-offline; make clean CA會被安裝到/usr/local/openca下。接下來到config.xml設定之前的動作都與安裝RA的部份相同,最後是設定config.xml 找一下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/
    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>
    請耐住性子去設, 另外有個部份是投影片沒提到的, 如果你到最後openca_rc啟動之後, 進入web管理介面跳出說密碼長度過短之類的訊息, 請在設定每個CGI目錄都加一個 SSLOptions +StdEnvVars 的設定, 例:
    <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看看有沒有問題),如果能正常啟動的話就請參考投影片去做初始化的動作了。 引用或轉載請來信告知,懶得告知也請註明原作者為hzhwang,謝謝 隱藏文章的部份
  • 相关阅读:
    poj 2312 Battle City
    poj 2002 Squares
    poj 3641 Pseudoprime numbers
    poj 3580 SuperMemo
    poj 3281 Dining
    poj 3259 Wormholes
    poj 3080 Blue Jeans
    poj 3070 Fibonacci
    poj 2887 Big String
    poj 2631 Roads in the North
  • 原文地址:https://www.cnblogs.com/adylee/p/1290071.html
Copyright © 2011-2022 走看看