[Ubuntu] 安裝 OpenCA

這文件是我修 Network Security 的作業,因為之前發生很鳥蛋的抄襲事件 ,所以這次先寫在前面,一樣也是修王老師 network security 別抓下來就直接當作業交出去啦 XD

OpenCA

由於參考資料的OpenCA 版本0.9.2.1與現在版本0.9.3-rc1已有差距功能以及組態設定都與之前版本不同,如組態設定時已取消 --with-hierarchy-level 參數、--with-engine參數,並且因OpenCA必須配合許多週邊軟體,而參考資料中的週邊軟體與環境均與目前不同。故參照OpenCA原始檔中的INSTALL檔案進行安裝。

Environment

  • Ubuntu 6.10
  • OpenCA 0.9.3-rc1

Prerequisites

閱讀 openca 中的 INSTALL,裡面提到

Prerequisites

=============
Prerequisites for building the OpenCA software are:

o GNU tar (a tar that understands the z option for gzip)
o GNU make (at minimum for FreeBSD because there are several problems reported with the OS’s own make)

Prerequisites for running the OpenCA software are:

o OpenSSL ( 0.9.7+ ) (on both CA and external server);
o Perl (5.6.1+ with DBI support) (on both CA and external server);
o Apache Web Server (on both CA and external server);
o mod_ssl (for Apache) (on external server only);
o OpenLDAP (v2 is recommended) (on external server)

先確定系統裡面是否安裝了這些軟體。比較要注意到的是因為要編譯軟體,所以安裝時別忘了把名稱尾端為 -dev 的套件安裝。最常會遺漏掉的通常是 openssl 的 header 檔 libssl-dev;Ubuntu 的 Apache2 已經將 SSL 編入,不需要另外掛載模組。我安裝了以下軟體:

  • tar

  • make

  • openssl

  • libssl-dev

  • perl

  • libdbi-perl

  • apache2

  • ldap-utils

  • libldap2

  • libldap2-dev

可以使用 apt-get 安裝以上軟體:

# apt-get install tar make openssl libssl-dev perl libdbi-perl apache2 ldap-utils libldap2 libldap2-dev

Apache2 mod_ssl configuration

Ubuntu最初的mod_ssl設定檔並無將SSL啟動,必須先複製/usr/share/doc/apache2/example/ssl.conf.gz檔案至/etc/apache2/mods-available 中

cp /usr/share/doc/apache2/example/ssl.conf.gz /etc/apache2/mods-available

gzip -d ssl.conf.gz

接著新增https的VirtualHost站台

cd /etc/apache2/sites-available/

cp default ssl

cd ../sites-enabled/

ln -s /etc/apache2/sites-avaiable/ssl 001-ssl

編輯001-ssl,將以下兩處更改:

NameVirtualHost *:443

<VirtualHost *:443>

最後產生Apache的憑證:

apache2-ssl-certificate

回答完所有問題即可建立憑證。

OpenCA Tools installation

安裝 OpenCA Tools,解壓縮:

tar zxvf openca-tools-1.0.0.tar.gz

組態設定,我將 OpenCA Tools 安裝在 /usr/local/, 並且開啟 OpenSSL 支援。

cd openca-tools-1.0.0
./configure --prefix=/usr/local/ --enable-engine

編譯與安裝(標明 # 的命令代表需要取得 root 權限。)

make
# make install

組態設定如下:

./configure --prefix=/usr/local --with-openssl-prefix=/usr --with-web-host=140.130.175.184 --with-httpd-user=www-data --with-httpd-group=www-data --with-htdocs-fs-prefix=/var/www --with-cgi-fs-prefix=/usr/lib/cgi-bin --with-db-type=mysql --with-db-port=3306 --enable-dbi

而進行安裝、設定後,發現安裝程序並無將所需之script檔案複製入目的端,故手動進行複製:

make

make install-offline

make install-online

cd src/scripts

cp * /usr/local/bin/

rm /usr/local/bin/*.in

chmod 755 /usr/local/bin/*

接下來對config.xml設定,並且執行./configure_etc.sh,啟動 OpenCA:

openca_rc start

接著照著參考資料上的作,最後就可以Approved Request。

Reference

Need Apache2 SSL howto, http://ubuntuforums.org/archive/index.php/t-4466.html

楊中皇, 網路安全理論與實務


讀者回函
讀完本文之後有什麼建議或回饋嗎?請按此在 Twitter 上面分享此文並且提及我,或是透過寄送電子郵件分享你的看法 😎