「Nginx」:修訂間差異
跳至導覽
跳至搜尋
第25行: | 第25行: | ||
<pre> | <pre> | ||
ssl_protocols TLSv1 TLSv1.2; | ssl_protocols TLSv1 TLSv1.2; | ||
ssl_ciphers " | ssl_ciphers "CHACHA20+ECDHE:AESGCM+ECDHE:AES+ECDHE:CAMELLIA+ECDHE:!ADH:!AECDH:!DSS:!ECDSA:!MD5:!SHA1"; | ||
ssl_dhparam /etc/ssl/certs/dhparam.pem; | ssl_dhparam /etc/ssl/certs/dhparam.pem; | ||
ssl_session_cache shared:SSL:30m; | ssl_session_cache shared:SSL:30m; | ||
第34行: | 第34行: | ||
; 直接關掉<code>TLSv1.1</code>: | ; 直接關掉<code>TLSv1.1</code>: | ||
: 因為就瀏覽器安全性來說,應該使用<code>TLSv1.2</code>,就相容性來說,則是使用<code>TLSv1.0</code>,而目前沒有看到需要開<code>TLSv1.1</code>才會動情況,直接關掉反而可以避免nginx實做<code>TLSv1.1</code>有問題時的風險(因為用的人少,眼球會比較少,這個協定風險反而比另外兩個高)。 | : 因為就瀏覽器安全性來說,應該使用<code>TLSv1.2</code>,就相容性來說,則是使用<code>TLSv1.0</code>,而目前沒有看到需要開<code>TLSv1.1</code>才會動情況,直接關掉反而可以避免nginx實做<code>TLSv1.1</code>有問題時的風險(因為用的人少,眼球會比較少,這個協定風險反而比另外兩個高)。 | ||
; 試著支援非NIST架構的協定: | ; 試著支援非NIST架構的協定: | ||
: 目前cipher都是NIST所選出的協定,所以還是多選 | : 目前cipher都是NIST所選出的協定,所以還是多選了ChaCha20與Camellia讓使用者可以用。 | ||
== 範例 == | == 範例 == |
於 2019年1月29日 (二) 04:56 的修訂
nginx是一套網頁伺服器,在效能與設定彈性上取得不錯的平衡點。
安裝
在Ubuntu上除了內建版本外(在16.04上內建的是1.10.3),另外官方也有維護PPA可以安裝(版本較新):
有nginx-light
(basic version)、nginx-full
(standard version)、nginx-extras
(extended version)可以安裝,一般裝nginx-full
算是夠用。
設定
Log
我希望記錄使用者在HTTPS環境下用的TLS Protocol與Cipher,所以將這兩個資訊放到Log內。
在/etc/nginx/conf.d/combined_ssl.conf
內的設定如下:
# log_format combined_ssl '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $ssl_protocol/$ssl_cipher';
SSL
在/etc/nginx/conf.d/ssl.conf
內的設定如下:
ssl_protocols TLSv1 TLSv1.2; ssl_ciphers "CHACHA20+ECDHE:AESGCM+ECDHE:AES+ECDHE:CAMELLIA+ECDHE:!ADH:!AECDH:!DSS:!ECDSA:!MD5:!SHA1"; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_cache shared:SSL:30m; ssl_session_timeout 30m;
這跟其他網站上建議的有些差異:
- 直接關掉
TLSv1.1
: - 因為就瀏覽器安全性來說,應該使用
TLSv1.2
,就相容性來說,則是使用TLSv1.0
,而目前沒有看到需要開TLSv1.1
才會動情況,直接關掉反而可以避免nginx實做TLSv1.1
有問題時的風險(因為用的人少,眼球會比較少,這個協定風險反而比另外兩個高)。 - 試著支援非NIST架構的協定:
- 目前cipher都是NIST所選出的協定,所以還是多選了ChaCha20與Camellia讓使用者可以用。
範例
這邊是/etc/nginx/sites-available/default
的內容,配合Dehydrated的需求:
#
server {
listen 80 default_server;
listen [::]:80 default_server;
root /srv/www/public;
index index.html;
server_name _;
location /.well-known/acme-challenge/ {
alias /var/www/dehydrated/;
}
}
外部連結
- 官方網站 (英文)
- NGINX Stable : 「Nginx」 team (英文)
- NGINX Mainline : 「Nginx」 team (英文)