Nginx:修订间差异

来自Gea-Suan Lin's Wiki
跳到导航 跳到搜索
此页面具有访问限制。如果您看见此消息,则说明您没有权限访问此页面。
→‎SSL
第38行: 第38行:
; 試著支援非NIST架構的協定:
; 試著支援非NIST架構的協定:
: 目前cipher都是NIST所選出的協定,所以還是多選了Camellia(<code>CAMELLIA128</code>)讓使用者可以用。之後會規劃將ChaCha20+Poly1305放入列表(還在觀察,尤其是行動裝置上對AES的硬體加速支援反而使得ChaCha20+Poly1305未必比較快)。
: 目前cipher都是NIST所選出的協定,所以還是多選了Camellia(<code>CAMELLIA128</code>)讓使用者可以用。之後會規劃將ChaCha20+Poly1305放入列表(還在觀察,尤其是行動裝置上對AES的硬體加速支援反而使得ChaCha20+Poly1305未必比較快)。
== 範例 ==
<syntaxhighlight lang="apache-conf">
#
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/;
   }
}
</syntaxhighlight>


== 外部連結 ==
== 外部連結 ==

2019年1月29日 (二) 04:52的版本

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 "ECDH+AESGCM+AES256:DH+AESGCM+AES256:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES:DH+AES:ECDH+CHACHA20:DH+CHACHA20:ECDH+CAMELLIA:DH+CAMELLIA:!ADH:!AECDH:!DSS:!ECDSA:!MD5"
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有问题时的风险(因为用的人少,眼球会比较少,这个协定风险反而比另外两个高)。
调低SHA-1(SHA)优先权:
因为目前还是有浏览器不支援较新的SHA256(配合AES128)或SHA384(配合AES256),所以还是得支援SHA-1,但优先权尽量排低。
试著支援非NIST架构的协定:
目前cipher都是NIST所选出的协定,所以还是多选了Camellia(CAMELLIA128)让使用者可以用。之后会规划将ChaCha20+Poly1305放入列表(还在观察,尤其是行动装置上对AES的硬体加速支援反而使得ChaCha20+Poly1305未必比较快)。

范例

#
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/;
    }
}

外部连结