Linux, 工作, 生活, 家人

Blog/wiki, Gentoo, Security

[Gentoo] Letsencrypt

大家都知道 Let’s Encrypt 最近提供了三個月的免費 SSL 證書, 加上 Google 要調高 HTTPS 的網站權重.
雖然本小站人少流量少, 不過還是不免俗的升級一下 HTTPS.

不過我們用的是 Gentoo, 和其他主流的 Linux Distribution 不太一樣, 所以會有些麻煩.
1. 首先加入 zugaina 的 Portage

$layman -a zugaina

2. 修改設定檔

在 /etc/portage/package.keywords 加上
app-crypt/acme **
www-apache/mod_h2 ~*

在/etc/portage/package.unmask 加上
www-apache/mod_h2

然後 安裝 letsencrypt
$ emerge letsencrypt

3. 產生證書

 $ letsencrypt certonly --manual --agree-tos -m name@domain.org -d domain.org

會在 /etc/letsencrypt/live/domain.org 下產生所需要的 KEY

4. 修改 apache 的設定, 替網站加上 https

有碰到連線問題, 所以我就加上一些參數讓瀏覽器可以支援, 這邊是我用的設定

<VirtualHost *:443>
ServerName domain.org
DocumentRoot “/var/www/domain.org”
<Directory “/var/www/domain.org”>
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile  /etc/letsencrypt/live/domain.org/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.org/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain.org/fullchain.pem

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
SSLProtocol All -SSLv2 -SSLv3

</VirtualHost>

 

4. 剛好清理一下 HTTP 網站的 Link, 移除死掉的 Link , http 改成 https

5. 如果是 wordpress,
網站 URL 要改成 https , 順便可以加上 Easy HTTPS Redirection 這個套件, 會產生新的 .htaccess 檔案, 重定位所有的連結變 https. 這樣就不會出現黃色方塊了.

6. 建議 60 天要更新一下證書.

我是放在 /etc/cron.monthly/ 下

#!/bin/sh
/etc/init.d/apache stop

letsencrypt certonly -a standalone --renew-by-default --agree-tos -d domain.org --email user@domain.org

/etc/init.d/apache start

新版的改用 certbot

#!/bin/sh
/etc/init.d/apache stop

certbot certonly -a standalone --renew-by-default --agree-tos -d domain.org --email user@domain.org

/etc/init.d/apache start

ref.
mod_http2 Chrome ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY

HowTo: Generate free SSL certificates for Nginx/Tengine with LetsEncrypt

Let’s Encrypt 免費讓你的網站升級成 SSL ready

發佈留言