Tenken blog

nginx配置https

购买ssl证书

阿里云有提供免费版ssl证书,这里以阿里云的免费ssl证书为例子。一个阿里云帐户最多签发20张免费证书,具体如何申请免费证书请自行百度,这里不具体介绍。
下载ssl证书,并且放到/etc/nginx/cert(nginx的配置目录)目录下,并且命名为test.pem(公钥),test.key(私钥)

配置nginx

这里以test.com为例子配置https,具体配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 443;
server_name test.com; #监听test.com域名
root /wwwroot/test;
index index.html index.htm;
#https的配置项
ssl on;
ssl_certificate cert/test.pem; #证书路径
ssl_certificate_key cert/test.key; #证书路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

access_log /var/log/nginx/test_access.log;
error_log /var/log/nginx/test_error.log;
location / {
try_files $uri $uri/ =404;
}
}

修改好nginx的配置,开启443端口,然后重启nginx,service nginx restart
测试浏览器访问:https://test.com是否能访问

配置全网https

实现全网https可以在nginx里面增加以下配置,让http协议强制跳转到https协议

1
2
3
4
5
6
server {
listen 80;
server_name test.com;
rewrite ^ https://$http_host$request_uri? permanent;
#return 301 https://$server_name$request_uri;
}

修改好nginx的配置,重启nginx,service nginx restart
测试浏览器访问:http://test.com是否成功跳转到https://test.com

请我吃辣条吧~~