- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
ngin配置https协议9 H9 M4 |% f1 i2 y3 U
1.https简介
+ t% k# S" s- p q, rHTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据6 x f# a1 {+ S+ ?+ T P! z
2.https协议原理5 j9 _5 X- l6 U: P# T7 X! Y+ d
首先,客户端与服务器建立连接,各自生成私钥和公钥,是不同的。服务器返给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东西加密,称之为密文,并连并自己的公钥一起返回给服务器,服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返回给客户端,客户端拿着自己的私钥解密密文,把数据呈现出来
; m* o a- D+ d' D0 r7 Y+ u& @& | B; |* d
TLS或传输层安全( transport layer security),它的前身是SSL(安全套接字层secure sockets layer),是Web协议用来包裹在一个受保护,加密封装正常通道。
4 |$ G# \% p1 F E; D% M采用这种技术,服务器和客户端之间可以安全地进行交互,而不用担心消息将被拦截和读取。证书系统帮助用户在核实它们与连接站点的身份。
- j1 B: }! _7 k. y5 _0 |& t2 p8 N/ t
2 k/ |3 z2 x& u1 P" z$ a( O
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/nginx/conf/ssl/nginx.key -out /usr/local/nginx/conf/ssl/nginx.crt
3 u' X/ Y j4 F) c$ c" P; o( D) y1 u9 I6 p' t
, P' t! \( N5 m2 V1 o+ X; PGenerating a 2048 bit RSA private key2 _5 |5 T6 F( i4 ` P
...................+++
8 j& k) @2 c |8 O8 ^- u........+++
/ J" A, d# v( j1 a. f. H O8 iwriting new private key to '/usr/local/nginx/conf/ssl/nginx.key') {/ E* j, C9 V6 q4 {! \
-----
+ B. W% M9 _- u# H; u) ~' wYou are about to be asked to enter information that will be incorporated$ P5 N: ?3 \% m* B
into your certificate request.4 V7 [5 g& T0 Z( Z
What you are about to enter is what is called a Distinguished Name or a DN.( o9 R/ L- |* W- ]
There are quite a few fields but you can leave some blank n- c( x5 q& ?1 p" K' B1 m- P
For some fields there will be a default value," \/ h9 r/ y3 n8 {- a
If you enter '.', the field will be left blank.
, |) x( w) A- V4 I- c( f+ C& O" ^-----/ X4 ]* R- A- S& c+ J
) S3 m4 T/ \& H i
Country Name (2 letter code) [XX]:BJ - d& m. T9 v/ S/ a! W
State or Province Name (full name) []:Beijing
! A. U- D h) p* u/ a" D( qLocality Name (eg, city) [Default City]:Beijing
$ s6 K, `1 N+ |9 ~( Q" FOrganization Name (eg, company) [Default Company Ltd]:Beijing
3 [- X |- g$ g: ~& P, V0 lOrganizational Unit Name (eg, section) []:
4 C; A: Z6 { c# ~" h/ |6 ~1 oCommon Name (eg, your name or your server's hostname) []:
( R7 M- h! x8 k: ]7 \/ t XEmail Address []:
: q) ~ y& O* N& F
* C" L- g/ _/ X- ]% B' E4 i4 k) A: \' S% d2 U+ k$ A
步骤2: Configure Nginx to Use SSL首先配置HTTP请求重定向 首先配置HTTP请求重定向 server { , B* w; A2 S! [
9 r% O4 [) n- w p6 X; x+ z: j9 H
listen 80;
$ K# ~5 L/ i# m2 B1 e: p* m) o j& [) [4 q# h# o
server_name www.yourdomain.com;
- C4 K3 l( V+ t2 G8 b' K* A# B1 J
" h2 B# ]! \2 X! c* P& F rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https #return 301 https://$http_host$request_uri;
3 @7 `4 w0 Q$ Z7 F) y9 N. O
# n" e0 G ]# Q# } E' j }9 ?9 T! X' _: o- M: G. m
6 {; u9 R7 x, r! j% @5 E/ r# \* ]8 ~) q
server {
4 m: T" c4 q: i( r( v# b listen 443 ssl;
! w2 c: p/ l% v# y1 M ssl_certificate /etc/nginx/ssl/nginx.crt;
0 j. _ S0 w( x2 F! A" p3 Y( \3 P! j6 ^; B
ssl_certificate_key /etc/nginx/ssl/nginx.key;
* r" }8 R* A* g$ q: W0 @. m1 u keepalive_timeout 70;
- d+ v" Q+ z9 _/ x" R7 g1 }/ s
$ D( z4 E' `$ }' @( K7 d server_name www.yourdomain.com; #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击 ! I2 l4 V: d6 i: k! ~
& Q/ x5 k$ _& Y) Q
server_tokens off; #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问 #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains"; # ...... + V9 @8 d5 a0 X( D% g, A
( H3 [- y" l$ `# g' g
fastcgi_param HTTPS on;8 x# w! m5 F' r7 m+ M9 p3 e; W: ]
2 X7 U) N: o+ X/ l+ b3 h fastcgi_param HTTP_SCHEME https;
* R# {% w/ n/ h' ^0 a _% {# n t h8 u) Y: q" v
access_log /usr/local/nginx/logs/wiki.xby1993.net.access.log; ( v! R# O0 Z& s& |, h6 D
; c# s. w; z# T& _* E' o" C
error_log /usr/local/nginx/logs/wiki.xby1993.net.error.log;
q+ C; B5 ?. C; f' O
, t0 ?2 J2 a2 z}
( f9 F* t& n( n
; `! u; b0 R, @! K1 X6 J; t4 a6 I如果想同时启用HTTP和HTTPS [backcolor=rgba(0, 0, 0, 0.74902)]
, T( c$ k2 m; ?6 c9 m, D. v8 H7 C' I+ J2 R7 |8 Y2 C, v
server {
- |/ Q9 d8 ~1 b7 `9 R listen 80;
* M9 r$ K) Y% D2 \0 z4 R' W+ l5 o8 V. z3 L2 A
listen 443 ssl;
0 R3 H' Z/ g% o0 Y2 N [9 r
9 [0 b/ j$ q/ l2 [7 K0 G server_name www.example.com;
) @5 U# e; x$ r: j' X
) T6 }! {( {( x) T7 y2 p$ m ssl_certificate www.example.com.crt; 3 K- J3 e0 k! c/ N. U9 R
ssl_certificate_key www.example.com.key;
# ^* K+ Q, v: R8 Y
. ?# Z" D0 G- O# n ...
1 d7 k0 L( |# g7 {* V2 ?1 I }4 R1 v8 F6 B! K- t) I! o
$ X. z2 N4 s9 ?/ m/ u9 Z |
|