- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
ngin配置https协议3 i; z* b. s1 J% J; X) E1 [% _3 ^
1.https简介
( L# t1 ]4 [! G, J6 H4 [HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据& h' ` M! U& S- B6 H
2.https协议原理
" x% t) J' |# ]+ l" v首先,客户端与服务器建立连接,各自生成私钥和公钥,是不同的。服务器返给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东西加密,称之为密文,并连并自己的公钥一起返回给服务器,服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返回给客户端,客户端拿着自己的私钥解密密文,把数据呈现出来- J6 P' E% n9 G% a! `. R
# e' A9 z" u: MTLS或传输层安全( transport layer security),它的前身是SSL(安全套接字层secure sockets layer),是Web协议用来包裹在一个受保护,加密封装正常通道。
+ ?9 g! A1 z! `; D6 P8 S采用这种技术,服务器和客户端之间可以安全地进行交互,而不用担心消息将被拦截和读取。证书系统帮助用户在核实它们与连接站点的身份。
8 x( d& P3 y @2 t' w4 @. L
7 C( A3 X$ B: T* f8 t+ n- }3 {) N
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/nginx/conf/ssl/nginx.key -out /usr/local/nginx/conf/ssl/nginx.crt1 \" h0 E- X. l0 o
& X" h, [6 ?, Z
5 D& _* ]/ p& Z+ {0 ]" \
Generating a 2048 bit RSA private key- Z' x) r6 y% n! y2 S. Q9 S* `; e; C
...................+++
- ]4 Y2 B* K7 k# ^' E2 {$ e9 P- |........+++
5 O; z. n( r% K6 iwriting new private key to '/usr/local/nginx/conf/ssl/nginx.key'( }& S- u: | L
-----3 H! K, ?8 {5 _& l w1 ]
You are about to be asked to enter information that will be incorporated
- T3 p+ ~- q7 X- Jinto your certificate request.% c& V) l# _5 `
What you are about to enter is what is called a Distinguished Name or a DN.
3 x1 k9 r# q" f; `There are quite a few fields but you can leave some blank" A+ p! W K: ?: i# f# T9 c
For some fields there will be a default value,
/ \: {% n0 Z/ i2 X/ g& k T0 H: kIf you enter '.', the field will be left blank.5 p# I/ \( M! E. }
-----
r# J8 v7 _! K- t/ t6 n. @! B$ A. `( @0 H) h3 S2 {8 I
Country Name (2 letter code) [XX]:BJ
* L2 j5 y- X; _1 f- tState or Province Name (full name) []:Beijing7 M/ S( [- x# G5 o) c$ [* \+ K, X
Locality Name (eg, city) [Default City]:Beijing
2 Z ^& |$ C: ?8 ^Organization Name (eg, company) [Default Company Ltd]:Beijing
+ T# T; m0 {) dOrganizational Unit Name (eg, section) []: : v1 L0 Q$ i0 y4 O6 v, Y$ B
Common Name (eg, your name or your server's hostname) []: / u- M8 r: u2 `) m! w
Email Address []:" N) s+ k! m* C5 e. Z3 J, L
3 f" V- s' R k3 Q2 o
. V* T" h& ~0 ~$ p7 {
步骤2: Configure Nginx to Use SSL首先配置HTTP请求重定向 首先配置HTTP请求重定向 server {
: R% x5 D' q2 T: W; B! s' a
2 N0 |" o4 ^, C2 B listen 80;
; K, S8 X' _0 H) \) _: i5 n; G+ F- {2 _: `$ P$ f( {
server_name www.yourdomain.com; ) f1 l- c$ m7 n' H3 P0 g9 K
7 e! U# o$ G4 a- ^7 l+ _7 X rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https #return 301 https://$http_host$request_uri;
8 S9 |) Y5 `) n) C# Q4 P" z2 x! o" _
/ a7 k- _! g! k6 r) M$ C# O% i4 Y }& Y- L) J$ A# Z V$ D; U) d2 @
" T3 z" X8 s9 M9 g$ s: Hserver { 6 q4 a+ ~( e' a. D e
listen 443 ssl;
/ i6 a {# Z" ]5 x/ A9 `6 ] ssl_certificate /etc/nginx/ssl/nginx.crt;
6 q! B' a$ L! `/ s# y n
! j; z" d0 T0 r U( z ssl_certificate_key /etc/nginx/ssl/nginx.key;
- e/ z' N! W! b9 q7 J keepalive_timeout 70;6 J- ] k. u2 ^8 ?# H% y8 G- Y% [
+ i' g7 {# \1 R( R' o
server_name www.yourdomain.com; #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
/ T- O; E, j1 j* h
" |' Y/ S6 Y- r4 T server_tokens off; #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问 #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains"; # ......
0 [3 t4 ~- b+ E4 U
) ^3 C! T) ]; \- T6 @1 L5 r( M3 N fastcgi_param HTTPS on;
3 X- m& {. x+ _- z- M d \, Y' V6 n: F
fastcgi_param HTTP_SCHEME https;
' i& d4 P( Y, c
6 X. Y" \# r6 `* V access_log /usr/local/nginx/logs/wiki.xby1993.net.access.log; & h+ z, L! X$ b9 }; s" I0 _
- U7 {! e5 j) Q' U* B+ h; j error_log /usr/local/nginx/logs/wiki.xby1993.net.error.log;
# e8 K* i( B% p8 @7 p( o
3 @0 V9 }6 V3 g/ A+ P: k4 m}& Y* m- D/ \5 A5 x- P
& c/ w5 j: {) }" z1 L7 U8 L如果想同时启用HTTP和HTTPS [backcolor=rgba(0, 0, 0, 0.74902)]
8 _. n' d/ Z2 |+ y
8 a' ?2 Z& D# E" `6 lserver { # w3 G, e2 A6 l8 g
listen 80;
+ ~2 O" P6 g& v6 h" u X& |# _
listen 443 ssl;
# T) D. I) F' T( N- Y$ G3 s
{6 n0 r8 n/ b. q6 x, e server_name www.example.com;
9 B9 w/ g' i# u
5 k. F. y" r( q' u( S8 y9 w ~ ssl_certificate www.example.com.crt; 4 I9 M0 K: W k
ssl_certificate_key www.example.com.key;
+ U8 N4 ?' s5 y/ J& u! Q% k0 X
W2 E4 W4 b' A$ ]8 w' |' A ...
+ N4 w, @& U! ~$ U3 B7 i8 P1 M }
" D8 Y5 p% r+ [7 Q1 o1 C: a- `9 U% z6 x% f6 z4 Z" \% G
|
|