有鑑於安全性問題,傳統的Http連線容易被竊聽,所以伺服器改成使用Https連線將可大幅提昇連線的安全性,至於SSL服務如何安裝及啟動就請參考下方敘述。

01. 建立SSL資料夾。

sudo mkdir /etc/apache2/ssl

02. 建立SSL證書。

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

03. 啟動SSL模組。

sudo a2enmod ssl

04. 重新載入apache服務。

sudo /etc/init.d/apache2 force-reload

05. 將現時apache虛擬主機檔案複製至/etc/apache2/sites-available/ssl資料夾。

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

06. 按以下內容,編輯/etc/apache2/sites-available/ssl檔案。

sudo vim /etc/apache2/sites-available/ssl

NameVirtualHost *:443
ServerAdmin webmaster@localhost
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

07. 啟動SSL虛擬主機。

sudo a2ensite ssl

08. 重新載入apache服務。

sudo /etc/init.d/apache2 reload

09. 編輯/etc/apache2/sites-available/default檔案,在檔案中第一行新增以下內容。

sudo vim /etc/apache2/sites-available/default
NameVirtualHost *:80

編輯SSL的配置

#vi /etc/apache2/sites-enabled/ssl

把埠改為443
加入SSL認證配置

10. 編輯/etc/apache2/ports.conf檔案,關閉埠80,避免其他人存取。(如果整個網站都要使用SSL連線,強烈建議關閉)

sudo vim /etc/apache2/ports.conf
# Listen 80

11. 重新啟用apache服務。

sudo /etc/init.d/apache2 restart

By admin

One thought on “Ubuntu 10.04 安裝SSL服務”
  1. Ubuntu 10.04 Server Apache + SVN + SSL配置
    Ubuntu 10.04 Server Apache + SVN + SSL配置
    2010/12/10 14:08
    一、安裝準備(安裝模組)
    #sudo apt-get install apache2
    #sudo apt-get install apache2-mpm-prefork
    #sudo apt-get install apache2-utils
    #sudo apt-get install libapache2-svn
    #sudo apt-get install libapache2-mod-auth-pam(可選,用於PAM)
    #sudo apt-get install libapache2-mod-auth-sys-group(可選,用於PAM)
    #sudo apt-get install subversion
    #sudo apt-get install subversion-tools

    二、SVN配置
    配置前說明:
    我的Subversion檔倉庫放在/home/svn,並且我的專案名稱是簡單的“myproject”。Subversion組名字是subversion

    創建Subversion的組:
    典型的情況下,您應該創建一個名為“Subversion”的組來擁有檔倉庫所在的目錄。

    #sudo addgroup subversion
    #sudo usermod -G subversion -a www-data
    //subversion是組名,可自己定義,一般不需要更改
    驗證:
    # cat /etc/group|grep subversion
    subversion:x:1001:www-data,svnx
    //你需要登出然後再登錄以便您能夠成為subversion組的一員

    創建SVN庫:
    # cd /home
    # sudo mkdir svn
    #cd svn
    # sudo mkdir myproject
    //此命令在svn目錄下進行
    # sudo chown -R root:subversion myproject
    //此命令在svn目錄下進行
    # # sudo chmod -R g+rws myproject
    //此命令在svn目錄下進行
    //賦予組成員對所有新加入文件倉庫的文件擁有相應的許可權
    # sudo svnadmin create myproject //此命令在svn目錄下進行

    可能的問題:
    在後續Check in的時候遇到如下錯誤:
    Can’t open ‘/home/svn/myproject/db/txn-current-lock’: Permission denied
    解決方法:可以再次運行命令:
    # sudo chown -R root:subversion myproject

    三、Apache配置
    先備份一下Apache2的設定檔:
    sudo cp -R /etc/apache2 /etc/apache2_backup

    通過WebDAV協定訪問SVN檔倉庫,您必須配置您的Apache 2 Web伺服器。您必須加入下面的代碼片段到您的/etc/apache2/mods-available/dav_svn.conf中:(加在檔最後面即可)

    //版本庫名字,必須以/開始
    DAV svn //不用改
    SVNPath /home/svn/myproject //版本庫路徑
    AuthType Basic
    AuthName “myproject subversion repository”
    AuthUserFile /etc/subversion/passwd //密碼檔路徑。 Require valid-user

    特別說明:
    1、如果需要使用者每次登錄時都進行使用者密碼驗證,請將兩行注釋掉。
    2、當您添加了上面的內容,您必須重新起動Apache 2 Web伺服器,請輸入下面的命令:
    #sudo /etc/init.d/apache2 restart

    創建passwd 文件:
    該檔包含了使用者授權的詳細資訊。要添加用戶,您可以執行下面的命令:
    #sudo htpasswd -c /etc/subversion/passwd user_name
    它會提示您輸入密碼,當您輸入了密碼,該使用者就建立了。

    最後,你就可以用用戶端來訪問了
    http://主機IP/myproject

    這樣,就可以通過Web方式訪問版本庫了,不過這樣的密碼傳輸是純文字方式的,基於安全方面的考慮,我建議你使用SSL。
    四、SSL配置
    Apache2已經在前面安裝好了下面安裝SSL模組:
    安裝SSL模組
    #a2enmod ssl

    我們可以使用openssl來創建,這裡我就是此方法創建SSL證書的
    #sudo cd /etc/apache2
    #sudo mkdir ssl
    #sudo cd ssl
    #sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

    注:在要求輸入Common Name (eg, YOUR name)時,輸入你的主機名稱。
    示例過程如下:
    Generating a 1024 bit RSA private key
    …………………++++++
    ..++++++
    writing new private key to ‘apache.pem’
    —–
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‘.’, the field will be left blank.
    —–
    Country Name (2 letter code) [AU]:China
    string is too long, it needs to be less than 2 bytes long
    Country Name (2 letter code) [AU]:CN
    State or Province Name (full name) [Some-State]:Jiangxi
    Locality Name (eg, city) []:Nanchang
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nanchang Unversity
    Organizational Unit Name (eg, section) []:Information Center
    Common Name (eg, YOUR name) []:LinuxServer
    Email Address []:[email protected]

    複製一份網站配置做為SSL配置的原型
    #cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
    #ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl
    編輯SSL的配置
    #vi /etc/apache2/sites-enabled/ssl
    把埠改為443
    加入SSL認證配置
    其它的根據需要自己定制與普通配置無異

    ServerSignature On
    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    ………………………
    修改普通http方式的配置(apache2這裡好像不用改,默認的已經是80埠)
    編輯Apache埠配置,加入443埠(這裡可以不用加“Listen 443”因為SSL默認認證的443埠已經打開)

    別忘了把前面生成的SSL金鑰檔拷貝過來
    # sudo cp apache.pem /proc/14646/cwd/apache.pem //在apache.pem目錄下
    重啟apache2
    #/etc/init.d/apache2 restart

發佈回覆給「admin」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料