Ubuntu 搭配 Nginx 安裝 Let’s Encrypt Wildcard SSL

前言

去年 Let’s Encrypt 開放申請 Wildcard SSL,

剛好最近有個域名尚未使用 SSL,

趁機記錄一下安裝過程。

安裝流程

本次安裝的環境如下:

Ubuntu LTS 16.04、Nginx 並使用 CloudFlare 做為 DNS Provider。

閱讀全文 Ubuntu 搭配 Nginx 安裝 Let’s Encrypt Wildcard SSL

Ubuntu安裝FTP伺服器

文章上半部為Ubuntu安裝vsftpd的流程,

AWS後台的設定可直接瀏覽文章底部內容。

首先要安裝FTP的程式(vsftpd):

$ sudo apt-get install vsftpd

安裝好後,修改設定檔$ sudo vi /etc/vsftpd.conf

 local_enable = YES //讓實體User可以使用FTP
 chroot_local_user = YES //綁User的家目錄,不能去上層目錄
 write_enable = YES //讓使用者可以寫入
 local_umask=022 //讓檔案權限=755

設定時有參考鳥哥:FTP伺服器設定

以下為新增帳戶的部分:

$ useradd -g 群組 -d 家目錄 帳號名稱

這個指令是新增帳號,如果是裝Apache的使用者,

家目錄參數可以設在/var/->即網站根目錄(WWW)的上一層。

*chroot_local_user設為YES時,FTP帳戶不得有家目錄之權限,

權限必須設在家目錄的子資料夾(如上述的WWW),否則無法訪問FTP。

$ passwd 帳號名稱

這個指令用來設定帳號的密碼。

如果是多帳戶、多網站的環境,例如:

一個班級每個學生都擁有自己的網頁空間,

且每個學生的學號為一個帳戶。

實作後的網址為:http://網站.com/~學號

則可以開啟Apache的userdir功能模組。

如果不需要此功能可略過這部分。

sudo a2enmod userdir

這個指令是開啟Apache的userdir模組。

接著修改userdir的設定:sudo vi /etc/apache2/mods-enabled/userdir.conf

修改如下:

  UserDir public_html
  UserDir disabled root
  
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    
      Order allow,deny
      Allow from all
    
    
      Order deny,allow
      Deny from all
    
  

做到這裡,此時PHP的檔案應都開不起來,

我們還要修改PHP的設定檔。

$ sudo vi /etc/apache2/mods-available/php5.conf

打開後,註解有提到要re-enable php要註解<IfModule>這個標籤的內容。

修改後如下:

  <FilesMatch ".ph(p3?|tml)$">
    SetHandler application/x-httpd-php
  
  <FilesMatch ".phps$">
    SetHandler application/x-httpd-php-source
  
  # To re-enable php in user directories comment the following lines
  # (from  to .) Do NOT set it to On as it
  # prevents .htaccess files from disabling it.
  # 
  #  
  #   php_admin_value engine Off
  #  
  # 

最後,在每個帳號的家目錄底下建立資料夾public_html

重新啟動apache後,試試看http://網站.com/~帳號

此時應可正常運作。

下述是AWS的設定:

在Security Groups的Inbound開啟21port,

再使用上述建立的帳號、密碼去連Public IP即可。