LNMP下Nginx SSL配置教程

在前面的幾篇文章里介紹了免費SSL證書Let’s Encrypt安裝使用教程以及debian下lnmp一鍵安裝腳本完善版。雖然腳本中提供了搭建HTTPS虛擬主機的命令,還是在這篇文章里詳細介紹下。

配置文件示例

首先找到虛擬主機的nginx配置文件,將該文件修改為:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
server {
	listen 80;
	server_name .com www..com; #替換為自己的域名 
	rewrite ^/(.*) https://$server_name/$1 permanent;
}
server {
	listen 443 ssl;
	root /var/www/.com;              #替換為虛擬主機目錄
        index index.php index.html index.htm;
        server_name .com www..com; #替換為自己的域名 
 
	location / {
		include rewrite.conf;          #替換為偽靜態規則
        }
 
	location ~ /.php$ {
		fastcgi_split_path_info ^(.+/.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}
 
	ssl on;
	ssl_certificate _certificate;    #替換為SSL證書
	ssl_certificate_key _privatekey; #替換為SSL證書密鑰
	ssl_session_timeout 10m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
	ssl_session_cache builtin:1000 shared:SSL:10m;
}

其中第一個server{}的作用是監聽80端口,將http訪問重定向到https訪問。

第二個個server{}的作用是監聽443端口,響應https訪問,並解析php文件。

在使用的時候替換相應的地址及域名即可。

最後記得重啟nginx

1
/etc/init.d/nginx restart

小結

配置很簡單,不過卻是很實用的技巧。



在前面的幾篇文章里介紹了免費SSL證書Let’s Encrypt安裝使用教程以及debian下lnmp一鍵安裝腳本完善版。雖然腳本中提供了搭建HTTPS虛擬主機的命令,還是在這篇文章里詳細介紹下。

配置文件示例

首先找到虛擬主機的nginx配置文件,將該文件修改為:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
server {
	listen 80;
	server_name .com www..com; #替換為自己的域名 
	rewrite ^/(.*) https://$server_name/$1 permanent;
}
server {
	listen 443 ssl;
	root /var/www/.com;              #替換為虛擬主機目錄
        index index.php index.html index.htm;
        server_name .com www..com; #替換為自己的域名 
 
	location / {
		include rewrite.conf;          #替換為偽靜態規則
        }
 
	location ~ /.php$ {
		fastcgi_split_path_info ^(.+/.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}
 
	ssl on;
	ssl_certificate _certificate;    #替換為SSL證書
	ssl_certificate_key _privatekey; #替換為SSL證書密鑰
	ssl_session_timeout 10m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
	ssl_session_cache builtin:1000 shared:SSL:10m;
}

其中第一個server{}的作用是監聽80端口,將http訪問重定向到https訪問。

第二個個server{}的作用是監聽443端口,響應https訪問,並解析php文件。

在使用的時候替換相應的地址及域名即可。

最後記得重啟nginx

1
/etc/init.d/nginx restart

小結

配置很簡單,不過卻是很實用的技巧。



发表评论