Apache2 的 SSL 產生、建立、安裝、設定

SSL 若只是要內部使用, 不需要購買, 直接啟用即可, 只是會跳出警告視窗就是了~

此篇在講的是購買完 SSL 憑證後, 要做的一些事情, 每間購買完憑證後要做的事情都不太一樣, 不過也都大同小異, 當參考看看即可.

申請 SSL 事前準備

  • 一個固定IP
  • 能產生 CSR 的 Web server
  • Domain 在 WHOIS 的紀錄是正確的資訊
  • 一個可以收 postmaster@yourdomain / postmaster@yourdomain / admin@yourdomain 的 Mail server, 於自己 Domain 設好 MX.

Apache2 的 SSL 產生、建立、安裝、設定

因為 SSL 需要用實際的資訊, 此篇內容如果混合一堆 example.com, 看起來會很混亂, 所以我一律以 Feebee 為例 + 購買 COMODO 憑證

以下為買完 SSL 憑證後, 再來要產生憑證、設定 Web server 的步驟, 簡單大概如下述幾步驟:

  1. 先產生 Private key 再由此 key 產生 CSR 憑證
  2. SSL 產生的步驟大致有下面三步驟
    1. openssl genrsa -des3 -out self-ssl.key 2048 # private key
    2. openssl req -new -key self-ssl.key -out self-ssl.csr # certificate signing request (CSR)
    3. openssl x509 -req -days 365 -in self-ssl.csr -signkey self-ssl.key -out self-ssl.crt # sign
  3. 再去取的官方的憑證(crt), 再一起設定進 Web server 即可.

Apache2 的憑證產生、設定詳細步驟

  1. ssh your_ssl_server
  2. sudo apt-get install apache2
  3. sudo mkdir /etc/apache2/ssl.crt
  4. sudo openssl genrsa -des3 -out /etc/apache2/ssl.crt/feebee.com.tw.key 2048 # private key, 需要輸入 pass phrase.(取用 key 需要的密碼)
  5. sudo openssl req -new -key /etc/apache2/ssl.crt/feebee.com.tw.key -out /etc/apache2/ssl.crt/feebee.com.tw.csr # certificate signing request (CSR), 以下詢問問題這邊列個大概, 請自行依照自己狀況回答

    輸入剛剛設定 pass phrase key 的密碼
    Country Name (2 letter code) [AU]: TW
    State or Province Name (full name) [Some-State]: Taiwan
    Locality Name (eg, city) []: Taipei City
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: Firstweb Limited
    Organizational Unit Name (eg, section) []: IT
    Common Name (e.g. server FQDN or YOUR name) []: feebee.com.tw
    Email Address []: YOUREMAIL@example.com
    其他問題 Enter 按過即可

產生 X.509 憑證

  1. sudo openssl x509 -req -days 3650 -in /etc/apache2/ssl.crt/feebee.com.tw.csr -signkey /etc/apache2/ssl.crt/feebee.com.tw.key -out /etc/apache2/ssl.crt/feebee.com.tw.crt # sign, 一樣需要輸入 pass phrase key password

    Signature ok # 出現這個就好了

  2. cat /etc/apache2/ssl.crt/feebee.com.tw.csr # 將 csr 內容完整貼到購買 SSL 的網頁去, 若要挑選 Web server, 挑選 Apache + mod_ssl, 這邊可能會需要 Email 驗證, 就會需要自己的 Mail server.

下載 COMODO 憑證

購買憑證的地方, 會有地方可以下載憑證, 下載解開會有下面兩個檔案:

  • feebee.com.tw.crt
  • bundle.crt

設定 Apache2 的步驟

  1. scp feebee.com.tw.crt bundle.crt your_ssl_server:
  2. sudo mv /etc/apache2/ssl.crt/feebee.com.tw.crt /etc/apache2/ssl.crt/feebee.com.tw.x509.crt
  3. sudo mv feebee.com.tw.crt bundle.crt /etc/apache2/ssl.crt/
  4. 再來就可以來設定 Apache ssl
  5. sudo a2enmod ssl # 啟用 ssl
  6. vim /etc/apache2/sites-enabled/ssl.conf
    <IfModule mod_ssl.c>
        <VirtualHost *:443>
        DocumentRoot /var/wwww/
        ServerName feebee.com.tw
        #SSLEngine on
        #SSLProtocol all -SSLv2 -SSLv3
        #SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv3
        SSLCertificateFile /etc/apache2/ssl.crt/feebee.com.tw.crt
        SSLCertificateKeyFile /etc/apache2/ssl.crt/feebee.com.tw.key
        SSLCertificateChainFile /etc/apache2/ssl.crt/bundle.crt
    
        CustomLog /var/log/apache2/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        </VirtualHost>
    </IfModule>
  7. service apache2 restart # 會需要輸入 pass phrase key 的密碼
  8. https://yourdomain.com # 就可以連連看了, 沒有跳出 SSL 警告就對了.

註:Nginx 只有兩個 SSL File,所以需要產生 bundle.crt:cat example.crt example.com.ca-bundle >> example-bundle.crt

相關網頁

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix 並標籤為 , 。將永久鏈結加入書籤。

Apache2 的 SSL 產生、建立、安裝、設定 有 1 則回應

  1. 通告: Let's Encrypt 的 SSL 憑證安裝 - Tsung's Blog

發表迴響