前陣子低價入了一個5年年限的 SSL 證書,域名恰好閑置中,于是自己也折騰了一下,去感受下 https 的魅力。
以下是我的配置:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/ssl.crt;
ssl_certificate_key /path/to/ssl.key;
location / {
root /path/to/root;
index index.html;
}
}
server {
listen 80;
server_name example.com www.example.com;
if ($host = 'example.com') {
rewrite (.*) https://example.com$1 permanent;
}
if ($host = 'www.example.com') {
rewrite (.*) https://www.example.com$1 permanent;
}
}
我使用了 if 語句讓一級域名和二級域名能夠分別跳轉(zhuǎn)到各自的 https 地址。即訪問 http://example.com
會跳轉(zhuǎn)到 https://example.com
;訪問 http://www.example.com
會跳轉(zhuǎn)到 https://www.example.com
。有沒有更好的方法呢?
不過還需要注意以下幾點:
- if 后面需要加空格,否則無法通過 nginx 的語法測試;
- 網(wǎng)頁中的 src 盡量不要包含
http://
開頭的地址,使用本地的相對地址或者加上https://
的本地文件鏈接,否則會提示網(wǎng)頁不安全。 - rewrite 和 301 重定向都是可以的,還不是特別理解兩者的區(qū)別。(似乎前者能夠分散 http 和 https 的權(quán)重,后者是永久重定向,在 SEO 方面才需要考慮?)
希望自己能夠有時間、精力、恒心去做完整個站點。以上。