設為首頁收藏本站

Hippies

 找回密碼
 立即註冊

掃一掃,訪問微社區

搜索
熱搜: 活動 交友 discuz
查看: 2030|回復: 0
打印 上一主題 下一主題

如何建構一個SSL證書在Apache的網站上

[複製鏈接]
  • TA的每日心情
    開心
    2016-2-27 23:29
  • 簽到天數: 27 天

    [LV.4]偶爾看看III

    438

    主題

    611

    帖子

    705

    積分

    高級會員

    Rank: 4

    積分
    705
    跳轉到指定樓層
    樓主
    發表於 2015-7-15 16:37:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式 简体中文繁體中文
    本帖最後由 kevinhu 於 2016-4-19 15:52 編輯

    通過SSL證書的方法去對網站信息加密,可以讓網站的連線更具保密性,一般商業網站在正常情況下都是向第三方證書機構購買取得該單位所發行的SSL證書來使用,如果不用第三機構發的SSL證書的話,還可以選擇通過SSL證書產生器自行簽證的SSL證書,只是這樣的證書就沒有第三方機構的認證了,底下所示範的是由自行產生的SSL證書來架設SSL協議的網站。

    這裡的示範是以Debian 7 的Linux為架構的安裝架設程序:

    1. 安裝Web Server: Apache
    安裝Apache2的指令

    $sudo apt-get install apache2
    ### Apache安裝的過程就不在此說明的範圍。

    2. 設定 Apache2 Web server 使用SSL協定的設定
    設定開啟Apache使用SSL通訊協定模式

    $sudo a2ensite default-ssl$sudo a2enmod ssl

    設定好重新啟動Apache server

    $sudo service apache2 restart
    接下來到使用端開瀏覽器測試看看是否server正確運作,瀏覽器端的網站輸入要改以https://為開頭加上網址來瀏覽網站,不過我們會收到瀏覽器的警告證書是不被信任的網站信息。

    3.產生自行簽證的證書
    這裡我們使用 ssl-cert 套件來產生SSL證書,使用前記得先安裝好
    接下來我們要為網站設定SSL證書並安裝在 /etc/apache2/ssl路徑下
    因此要先為存放證書的地方建立好目錄

    $sudo mkdir /etc/apache2/ssl
    接下來通過產生器來產生SSL證書在我們所事先建立好的目錄下

    $sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
    證書的有效期是可以由我們自己來決定的,如果懶一點可以設定到10年也可以,在-days 365更改為-days 3650就行,有關產生器openssl的參數設定請上openssl網站查詢
    指令下達後會在console上要你回覆有關證書的相關資訊,其中最重要的部分是在 Common Name 的部分,你必須在這里輸入你網站的官方domain name或者是實體IP位址。
    You are about to be asked to enter information that will be incorporatedinto 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]: US
    State or Province Name (full name) [Some-State]:New Yor
    Locality Name (eg, city) []: NYC
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: Awesome Inc
    Organizational Unit Name (eg, section) []: Dept of Merriment
    Common Name (e.g. server FQDN or YOUR name)  []: example.com
    Email Address []: webmaster@awesomeinc.com

    在上述的指令執行後會在我們所建立的目錄下產生一個金鑰(apache.key)及一個證書(apache.crt)。

    4. 把證書設起來
    現在我們已經備齊了所有需要的東西了,接下來就是去設定好網站主機去顯示我們的新證書了。
    先打開SSL的設定檔
    $sudo nano /etc/apache2/sites-available/default-ssl
    在檔案中開頭為 <VirtualHost default:443> 的這段中做底下的修改
    加你server name 在 Server Admin email: 的右下方,增加底下一行參數
    ServerName example.com:443
    注意:example.com 應要用你自己網站的domain或實體IP取代,這必須要更你在證書產生時所指定的Common Nane要一致。
    然後再找出底下二行,並確定是否跟你的證書和金鑰一致否

            #   A self-signed (snakeoil) certificate can be created by installing
            #   the ssl-cert package. See
            #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
            #   If both key and certificate are stored in the same file, only the
            #   SSLCertificateFile directive is needed.
            SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
            SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    改為我們自己產生的證書和金鑰,包括路徑也要正確

    SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

    確定無誤後存檔離開

    5. 啟動新的虛擬伺服器主機
    在網站將要以443Port運作前,必須先將虛擬主機啟動起來

    $sudo a2ensite default

    完全設定好後,在讓Apache重新載入設定即可

    $sudo service apache2 reload

    接下來在瀏覽器上就可以看到你的網站上的新證書了。

    最近訪問 頭像模式 列表模式
    您需要登錄後才可以回帖 登錄 | 立即註冊

    本版積分規則

    小黑屋|手機版|Archiver|Hippies 手作皮革工作坊  

    GMT+8, 2024-4-27 17:16 , Processed in 0.054801 second(s), 19 queries , Apc On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回復 返回頂部 返回列表