邊做邊學,順便留個筆記,若有錯誤請不指教。
本篇使用 ubuntu18.04 及 apache2.4.29 版本實作。
本篇使用TWNIC現代化網路協定檢測工具測試:https://check.twnic.tw/
以下以TWNIC檢測工具項目逐條說明設定過程:
HTTPS狀態:
啟用ssl模組:
sudo a2enmod ssl
重啟apache服務:
sudo service apache2 restart
上傳憑證、中繼憑證及私鑰至伺服器
編輯 /etc/apache2/sites-available/default-ssl.conf 並於 <VirtualHost _default_:443> 標籤內加上(或修改)以下四行
SSLEngine on SSLCertificateFile /yourpath/cert.pem SSLCertificateKeyFile /yourpath/privkey.pem SSLCertificateChainFile /yourpath/chain.pem
重啟apache服務:
sudo service apache2 restart
HTTPS重導向:
編輯 /etc/apache2/sites-enabled/000-default.conf 於 <VirtualHost *:80> 標籤內加上三行:
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://kerker.website %{REQUEST_URI} [R=301,L]
重啟apache服務:
sudo service apache2 restart
HSTS:
啟動a2enmod headers並重起apache服務:
sudo a2enmod headers
sudo service apache2 restart
編輯 /etc/apache2/conf-available/security.conf 加上一行:
Header always set Strict-Transport-Security "max-age=31536000;includeSubdomains; preload"
重新載入設定
sudo service apache2 reload
TLS版本:
編輯 /etc/apache2/sites-enabled/default-ssl.conf 加上(或修改)一行:
SSLProtocol TLSv1.2 TLSv1.3
重啟apache服務:
sudo service apache2 restart
加密演算法:
編輯 /etc/apache2/sites-enabled/default-ssl.conf 加上(或修改)一行:
SSLCipherSuite AES256+EECDH:AES256+EDH:AES128+EECDH:AES128+EDH
重啟apache服務:
sudo service apache2 restart
SECURE RENEGOTIATION:
請將OpenSSL 更新至 0.9.8m 版本以上。
Certificate
本項檢查網站所使用之憑證是否符合規範,未符合規範者請自行更換符合規範之憑證。
- trust chain of certificate:網站使用可信CA,可使用免費SSL憑證,如非營利組織網路安全研究小組( ISRG) 營運的Let’s Encrypt 憑證。
- public key of certificate:金鑰長度2048位元。
- signature of certificate:使用SHA256以上雜湊演算法。
- domain name on certificate:使用的憑證網址與網站網址一致或使用Wildcard SSL 憑證,或使用Wildcard SSL 憑證。