SSL(Secure Sockets Layer,安全通訊端層)及其繼任者 TLS(Transport Layer Security,傳輸層安全協定)是為網路通訊提供加密與資料完整性的安全協定。HTTPS(Hypertext Transfer Protocol Secure)正是在 HTTP 應用層下引入 SSL/TLS 作為子層,透過預設連接埠 443 進行加密傳輸,保障使用者隱私與資料安全。
建置網站成本不低,若能取得免費且受信任的 SSL 憑證,不僅能降低支出,還能提升網站可信度與 SEO 排名。早期 StartSSL 提供免費 Class 1 憑證,雖然該服務已停止運營,但申請流程與安裝邏輯對理解現行 Let's Encrypt、ZeroSSL 等免費憑證機制仍具參考價值。
進入官網點選 Sign-up For Free,填寫真實資料:姓名請用中文拼音,地址需精確到門牌號碼,否則後續人工審核可能要求補件。
註冊成功後會收到驗證連結與驗證碼。StartSSL 採用客戶端憑證認證登入,務必妥善匯出 .p12 或 .pfx 檔並備份,遺失將無法登入控制台。
進入 Control Panel → Validations Wizard → 選擇 Domain Name Validation,輸入欲申請憑證的域名與可接收郵件的信箱,完成信箱驗證碼確認。
ssl.key。選擇要綁定的子域名(如 www.example.com),點擊 Tool Box → Retrieve Certificate 取得憑證內容,儲存為 ssl.crt。
openssl rsa -in ssl.key -out server.key
cp ssl.crt server.crt
wget https://cert.startssl.com/certs/ca.pem
wget https://cert.startssl.com/certs/sub.class1.server.ca.pem
cat ca.pem sub.class1.server.ca.pem >> ca-certs.crt
cat ca-certs.crt >> server.crt
將 server.key、server.crt 放置於 /usr/local/nginx/certs/ 目錄。
server {
listen 80;
server_name www.您的域名.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name www.您的域名.com;
root /home/www;
ssl_certificate /usr/local/nginx/certs/server.crt;
ssl_certificate_key /usr/local/nginx/certs/server.key;
# 建議加入現代安全參數
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
若不加入 rewrite 導向,網站將同時支援 HTTP 與 HTTPS 雙協定存取。
/usr/local/nginx/sbin/nginx -s reload
瀏覽器訪問網站,確認網址列出現鎖頭圖示,即代表 HTTPS 已成功啟用。
StartSSL 已停止服務,建議改用 Let's Encrypt 搭配 certbot 自動化申請與續期,或採用 ZeroSSL、Buypass Go SSL 等免費 ACME 憑證機構,流程更簡單且支援萬用字元憑證。