EC2 Ubuntu 安裝 Let's Encrypt 假設 以下操作先做假設 Elastic IPs:123.456.789 下載的 .pem 檔案名稱:test.pem test.pem 位置:/User/oa/test.pem 網址(domain):your.url.tw E-Mail:your.email@gmail.com 以下編輯器主要是使用 nano,請自行斟酌是否使用 vi 或 vim 記得去你的 DNS(Domain Name Server) 設定,新增 A…

EC2 Ubuntu 安裝 Let's Encrypt

假設

  • 以下操作先做假設
    • Elastic IPs:123.456.789
    • 下載的 .pem 檔案名稱:test.pem
    • test.pem 位置:/User/oa/test.pem
    • 網址(domain):your.url.tw
    • E-Mail:your.email@gmail.com
    • 以下編輯器主要是使用 nano,請自行斟酌是否使用 vivim

記得去你的 DNS(Domain Name Server) 設定,新增 A 紀錄 your.url.tw,指向 IP 123.456.789

Let's Encrypt(ssl)

  • 安裝 curl,指令 sudo apt install curl
  • 進入 www 目錄,指令 cd ~/www
  • 從 Git 下載最新 dehydrated,指令 git clone https://github.com/lukas2511/dehydrated.git
  • 進入專案,指令 cd dehydrated
  • 新增目錄,指令 sudo mkdir /etc/dehydrated/
  • 修改權限,指令 sudo chmod 777 /etc/dehydrated/
  • 將檔案移進去,指令 cp dehydrated /etc/dehydrated/
  • 修改 dehydrated 權限 chmod a+x /etc/dehydrated/dehydrated
  • 建立證驗時所需目錄,指令 mkdir -p /var/www/dehydrated/
  • 第一次執行同意 Let's Encrypt 的條款,指令 /etc/dehydrated/dehydrated --register --accept-terms

新增 SSL by Let's Encrypt

  • Apache,在該專案下的 http vhost 內,加入指令 Alias /.well-known/acme-challenge/ /var/www/dehydrated/

  • nginx,在該專案下的 http vhost 中的 server 內加入以下指令:

    location /.well-known/acme-challenge/ {
      alias /var/www/dehydrated/;
    }
  • 重新載入 Apache 設定,指令:sudo systemctl reload apache2

  • 取得憑證 /etc/dehydrated/dehydrated -c -d your.url.tw

啟用 Apache SSL 功能

第一次使用

  • 啟用,輸入指令:sudo a2enmod ssl

  • 複製一份 ssl vhost 檔案指令 sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/my-ssl.conf

  • 啟用 my-ssl.conf,指令:sudo a2ensite my-ssl.conf

  • 重新載入 Apache 設定,指令:sudo systemctl reload apache2

不是第一次

  • 編輯 my-ssl.conf,指令:sudo nano /etc/apache2/sites-available/my-ssl.conf,可以用以下當範例:
<IfModule mod_ssl.c>

  <VirtualHost _default_:443>
    # 你的 Domain
    ServerName  your.url.tw
    ServerAlias your.url.tw

    # 你的 E-Mail
    ServerAdmin your.email@gmail.com

    # 你的專案目錄
    DocumentRoot /var/www

    # Log 的儲存位置
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

     ## SSL 設定
    SSLEngine on
    SSLCertificateFile /etc/dehydrated/certs/your.url.tw/cert.pem
    SSLCertificateKeyFile /etc/dehydrated/certs/your.url.tw/privkey.pem
    SSLCertificateChainFile /etc/dehydrated/certs/your.url.tw/chain.pem

    # 記得也要是你的專案目錄
    <Directory /var/www>
      Options FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
  </VirtualHost>

</IfModule>
  • 重啟 Apache 即可,指令:sudo service apache2 restart

重啟錯誤

  • 若出現以下錯誤,代表你還沒申請 ssl 的憑證檔案,所以出錯。

    Job for apache2.service failed because the control process exited with error code.
    See "systemctl status apache2.service" and "journalctl -xe" for details.
  • 所以,先把 my-ssl.conf 停用再重開 Apache,指令:sudo a2dissite my-ssl.conf

  • 重新載入 Apache 設定,指令:sudo systemctl reload apache2

  • 重啟 Apache 即可,指令:sudo service apache2 restart

  • 然後 執行上述的 新增 SSL by Let's Encrypt

以上參考:

EC2 Ubuntu 安裝 MySQL - OA Wu's Blog
EC2 Ubuntu 安裝 MySQL
EC2 Ubuntu 安裝 MySQL 在 EC2 上安裝 MySQL,輸入指令:sudo apt-get install mysql-server mysql-client 途中會需要你輸入密碼與確認密碼,輸入密碼過程中不會顯示,請不要驚訝,輸入完後按下 enter 即可。 驗證是否安裝成功,輸入指令:mysql -u root -p 後,接著會需要輸入密碼輸入密碼過程中不會顯示,請不要驚訝,輸…
AWS 開設 EC2 Instance - OA Wu's Blog
AWS 開設 EC2 Instance
AWS 開設 EC2 Instance 點擊左上角藍色 Launch Instance 選擇要安裝的系統,若要使用免費版要選擇下面有 Free tier eligible 的字樣,這邊我們選擇 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type,點擊該後面的藍色按鈕 Select 第二頁 Choose an Instance Type,主要是確認版本,免費版就確定有綠色的 Free tier eligib…
AWS Elastic IPs - OA Wu's Blog
AWS Elastic IPs
AWS Elastic IPs 每次重開 EC2 都會變換 Public IP,然後都要重新設定 DNS(Domain Name Server),還要等他生肖,實在有點兒麻煩,所以我們可以設定 Elastic IPs,藉由聲請一個 Elastic IPs,然後關聯指定的 EC2 Instance,如此一來只要控制指向,IP 就不會一直亂變囉。 新增 點選左邊的 Elastic IPs 點選藍色按鈕 Allocate…
EC2 上的 Ubuntu - OA Wu's Blog
EC2 上的 Ubuntu
EC2 上的 Ubuntu 以下會教學新的 Ubuntu 常用的幾項基本設定,主要有 Git、Zsh、SSH 設定。 經過設定 Elastic IPs 後,我們就可以藉由其 IP 與下載的 .pem 檔案做第一次的 ssh 連線遠端登入 Server 假設 以下操作先做假設 Elastic IPs:123.456.789 下載的 .pem 檔案名稱:test.pem test.pem 位置:/User/oa/test.pem 網址…
吳政賢個人簡歷OA WuLiveCoding.tw
OA Wu's Blog
AWS 筆記
EC2 Ubuntu 安裝 Let's Encrypt