
|
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 案例应用1:Web服务器架构之https
: O9 _9 M. L. B8 P; w1 g1. 企业实现要求:; j6 P+ J/ k! |# G9 v) R
某公司要求在公司内部自行搭建CA证书服务器,用于提高证书服务(在windows server 2008上实现);并且为公司内部的WWW服务器提供证书服务,提供正常服务。
9 x8 M+ o/ [( Z7 R2. 案例应用简化拓扑图:* i5 M2 c6 M5 B9 x
1 a" O. [5 M" I+ I/ F2 k3.案例实现步骤:: D2 i7 ]3 x8 N# h2 L# \0 }& e
(1)在windows server2008上搭建CA证书服务器. g$ m" c* c7 \1 e

7 N+ D7 J6 i" Y2 E) F9 V, r
" Q. n/ I2 |+ c. L
# `* s. C' c# D1 e. P. C" S # n2 j+ u4 ^7 N( e& g$ I0 G a
(2)在web服务器上安装相应的软件0 f _: z! \5 u8 d' D# Y# y: b) D
[root@www ~]# mkdir /mnt/cdrom
4 a5 @ G7 |5 r[root@www ~]# mount /dev/cdrom /mnt/cdrom/
+ b! {" C9 ?7 P8 U[root@www ~]# cd /mnt/cdrom/Server/4 U6 @' [. B) P4 g7 [
[root@www Server]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm7 C( w2 f' L5 z6 k6 x
[root@www ~]# yum install -y mod_ssl
# A. i, c4 n7 D% h3 ?4 n(3)配置web服务器的虚拟主机
/ v5 B" K" D0 d: t2 N#创建网页文件
& T0 y Q% Z! q; q[root@www www]# cat html/index.html
D4 X! H. A2 u! C& W& f: r" o$ e--www) E0 x9 D. w" s8 N/ s
--xjzhujunjie
/ z5 C6 k/ X& p--2012/03/173 r2 s8 `( M0 V9 n# m
[root@www www]# cat tec/index.html
/ e6 w0 M; C% t9 z9 X# ^--tec
# i h) u- P- G9 A$ t: s! A# W--xjzhujunjie# T9 A p6 P" s
--2012/03/172 a% j& Z; O, j9 d! d" W# F9 E" o
[root@www www]# cat mkt/index.html
6 }; J8 o! k5 W: c# _* O- @7 I2 H--mkt
; R7 J' d0 [2 H" m; g* C--xjzhujunjie: I( H% L2 \5 S7 b
--2012/03/17
' ?7 Y6 c6 y& a* E#编辑apache配置文件6 Y& Y V: U' p& f$ D) k
[root@www ~]# vim /etc/httpd/conf/httpd.conf
8 Z4 J) e& m: Z! c7 X Q5 R7 p134 Listen 80
/ ^/ s, x: J% t2 \6 ^4 l " E; b& `. G: ]# m8 ~5 V
973 NameVirtualHost 192.168.101.111:80
' ^) _) B* v. z $ W: ~4 O$ P% c/ a6 P
9922 T1 n6 W, p; F) X2 A1 d
993 ServerAdmin master@junjie.com
- n, \( n7 T' v994 DocumentRoot /var/www/html
7 u- O7 Z) L' h. B$ a6 @995 ServerName www.junjie.com2 n! e% G1 u/ q3 t; @* _
996 ErrorLog logs/www-error_log
: G, u4 z5 d% }& _1 ?997 CustomLog logs/www-access_log common
! h; ?0 Y5 E! e& f3 ~998- D2 c& d, X/ _4 @5 q; ?- t _
999
3 R, Q6 j8 T- _ _+ J# V1000 ServerAdmin master@junjie.com5 m0 X- B6 ]8 M* c3 y* E
1001 DocumentRoot /var/www/tec- r7 Y& t0 V8 |# r$ d
1002 ServerName tec.junjie.com8 ^3 ^+ J4 I: O( V
1003 ErrorLog logs/tec-error_log
% ~' V' X/ G2 Y' M1004 CustomLog logs/tec-access_log common/ G3 i" B7 g! m0 i+ {
10051 E* i/ A) M9 ^$ f6 i
1006- ]: j% f* d( p+ P z) K
1007 ServerAdmin master@junjie.com) t0 o, V) z1 s. s$ B
1008 DocumentRoot /var/www/mkt1 g Y1 k# m/ I) v
1009 ServerName mkt.junjie.com
6 B, {( p' C" Q9 m" B3 J+ B% V1010 ErrorLog logs/mkt-error_log* f3 L, J8 D# z/ N/ S5 G" R, z9 [
1011 CustomLog logs/mkt-access_log common
- H) C: m9 }5 J1 [+ E1012
, J7 H- t4 \7 K) m4 N! Q(4)重启web服务器,测试虚拟主机
( f# G, s. t1 g# P7 }- s3 J7 ~3 B, M[root@www ~]# service httpd restart #重启apache服务
1 _2 Q6 `9 p1 X/ b9 w( g* T mWin7客户端测试在C:WindowsSystem32driversetchosts添加:
2 Y* }4 J- }4 H& x5 o192.168.101.250 www.junjie.com
0 Z2 t& B' p& g$ E' _192.168.101.250 tec.junjie.com) N% [; y- {, a! D
192.168.101.250 mkt.junjie.com5 K- J; h P1 p- Q9 a4 ^5 c7 Z& f
Win7客户端使用IE9浏览器测试结果如下(虚拟主机完成):
1 Y' j* B) z8 i- x( E3 e6 M
; z- E3 c' @; X$ ~9 \4 ~, T(5)为web服务器申请证书
1 z5 N+ k' f5 {- h( t[root@www httpd]# mkdir certs p% f+ h7 P: H
[root@www httpd]# cd certs/
; B8 Z7 K z3 v[root@www certs]# openssl genrsa 1024 >httpd.key% t U2 S0 S& b
[root@www certs]# chmod 600 httpd.key L9 S. x+ p$ g6 G( \/ T9 W% e
CN/HENAN/ZHENGZHOU/zzu/junjie/www.junjie.com/xjzhujunjie@hotmail.com///
) u5 F* g7 L j* i在linux的web服务器上启动桌面环境,用于申请证书
* t# [6 @4 M9 v- X在firefox浏览器中输入http://192.168.101.112/certsrv来申请证书* O/ p2 O; v" W1 d* G1 b: G* c

) ^* i$ a- V/ y+ i1 `选择申请证书,即可进入申请证书页面,将刚才生成的请求文件填写在下面
( I$ Y5 K6 \3 v d2 Q % ^2 X& F' Q) q: ~ x0 K6 ]

! G0 R) {! M8 [+ P9 X5 G可以看到,此时证书服务器已经向web服务器返回信息,提示正在审核中
( X' z- |$ z& D此时进入windows server 2008证书服务器上,开始审核web服务器申请的证书,选择挂起的证书,即可看到web服务器提交的申请信息
8 V2 |# D# @2 W5 b1 M1 r
/ V' l5 _' r0 e4 F6 W' v5 c选择信息时,右键,所有任务,颁发证书,为web服务器颁发证书;接下来便可以在颁发的证书中看到已经颁发的证书;( V$ z. o9 m7 R* A

. U- r+ s" F7 r7 {' ?7 r4 lLinux的web服务器再次在firefox浏览器中输入http://192.168.101.112/certsrv,查看挂起的证书,并下载证书
2 j$ @" n/ R- F4 `% m 0 k2 v+ b! j ?0 Q
/ q, I4 b) G2 J E o8 j
% U$ j$ z9 m! B5 r. Q5 C0 i
刚下载的证书,默认保存在桌面,将其移动到/etc/httpd/certs/下。
7 Q" x% ?) Y$ l(6)修改web服务器证书文件
! R# |- O* |$ v# B5 B[root@junjie ~]# cd /etc/httpd/conf.d/ssl.conf
: C$ a' }" w$ n112 SSLCertificateFile /etc/httpd/certs/httpd.cer. U# p. ^: F6 e P
119 SSLCertificateKeyFile /etc/httpd/certs/httpd.key
! @0 u ?% B! r$ Y/ w128 SSLCertificateChainFile /etc/httpd/certs/cacert.p7b) a b/ Y- r4 b( }
[root@www ~]# service httpd restart #重启apache服务$ Q- I$ X! A0 T$ e
(7)win7客户端使用https安全访问网页# v1 ?1 D, m+ U5 C. `
使用win7的IE9测试,输入安全网址https://www.junjie.com, ?0 R) N0 w+ n1 b. N# n" v( u
,此时浏览器提示安全警告,提示此网站的安全证书有问题,并将警告信息显示出来,具体如下:
0 I* o7 \4 g! i7 `- e& r
3 C$ ~) o$ H8 y4 x如若:用户强制继续访问,侧依然可以访问,但是浏览器地址栏中,已经变成红色报警信息,提示此网站不安全, Y, r' b! E) \! _+ M. I9 w3 F
) R' B/ ~; r/ F3 H2 g5 ~
) k3 D/ ], f( U: K5 Z! {
说明:在此由于我没有使用IE9浏览器,没有解决证书问题,故又使用搜狗浏览器来解决证书错误问题!若,你可以帮助我解决请在本文留言,多谢了!
5 ?" A& p! [+ o! i使用搜狗浏览器警报信息如下:
6 M- T' d7 G" g5 H* o. e
2 X C( M; N8 E- _& ]4 U% \! t此时,选择查看证书-证书路径-查看安装根证书和web服务器证书, d8 e( h5 s) k$ j% \% }
$ N/ k/ E: ?+ V; q) y
; \% I7 D- E& B6 ]. V- x* [
安装证书;9 w3 t8 S' W/ V

! ` Z; P$ m% y4 g选择是继续安装证书,接着再查看就没有证书问题了,如下所示: R" v* k, a$ q$ e3 M

H8 Y, z* f) _2 C5 Q. M2 s此时再win7下使用搜狗高速浏览器,Google Chrome 浏览器,Internet Explorer 9浏览器,都显示安全访问,如下所示:
" X: Q" N3 z; d 7 q9 h) r$ D1 D; g/ k
***********************************************. \9 z6 U9 L1 O& Z) K
案例应用1:Web服务器架构之https自签发
6 L7 Q9 x4 a) p: C# R9 @( }3 ^1.企业实现要求:
# m+ Q) p, h4 `% z6 G! {/ a某公司要求在Linux上实现web服务器功能,并要求实现自签发证书(及要求:linux服务器即为web服务器又为证书服务器)7 }$ T& ~& a9 ?/ l
2.案例应用简化拓扑图:' U1 b/ u' w/ m) Y: A6 _ x- R1 ^2 y
8 v/ Z$ z1 e, D, {0 b* v
3.案例实现步骤:
& X- F7 ~/ K9 `: V3 n, ~(1)在web服务器上安装相应的软件
1 |- k9 [0 F t0 s[root@www ~]# mkdir /mnt/cdrom
, @# K& B( v. T- K$ b: G6 D- A[root@www ~]# mount /dev/cdrom /mnt/cdrom/
& y( J" L' p) c0 y2 k* R[root@www ~]# cd /mnt/cdrom/Server/
9 G# G5 T2 T$ K4 J2 Y& @7 A8 |[root@www Server]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm
9 Y5 T0 K: H) K" k% X! t# G9 T$ W6 ^! ][root@www ~]# yum install -y mod_ssl
7 ]9 B( Z5 M: O- X! h, `! {8 R% q1 x$ O(2)创建CA证书服务器的根证书文件
$ i$ ^ }, K, m# g) c[root@www ~]# cd /etc/pki/4 J! E' l7 e$ k/ j. ]$ f# A
[root@www pki]# vim tls/openssl.cnf; i$ F# `5 u, J. j
45 dir =/etc/pki/CA # Where everything is kept7 i* \1 V W' \1 ~
46 certs = $dir/certs # Where the issued certs are kept
1 H8 J( l4 D) n47 crl_dir = $dir/crl # Where the issued crl are ke pt; \; ^! t; c/ ?2 B/ n, @: N
48 database = $dir/index.txt # database index file.) c$ C0 N& h! z) H
51 new_certs_dir = $dir/newcerts # default place for new certs- A2 h; R3 G2 b
53 certificate = $dir/cacert.pem # The CA certificate: p" G1 ^1 t0 a+ L M: J" L5 E6 ^3 _
54 serial = $dir/serial # The current serial number6 Q3 [) `: s- A' v- D$ }
58 private_key = $dir/private/cakey.pem# The private key
6 f5 T9 l" k& V5 w+ J 4 t% a+ c/ z. Q) c0 ]( q( U! i
88 countryName = optional
2 l% K. p( y; T( k* q89 stateOrProvinceName = optional
) l7 L7 E2 ~( G5 }+ {$ J90 organizationName = optional& c4 n# h% u3 w0 |1 B. d4 _. ~
8 k8 l6 Y- \/ c% m[root@www pki]# cd /etc/pki/CA/
A) O( a3 R# h2 @' N K7 n. M[root@www CA]# mkdir certs crl newcerts F. x, f* u3 f6 \( W6 q' R
[root@www CA]# touch index.txt serial9 F& r; c0 l) q, b) E6 Z! H: I6 |
[root@www CA]# echo "01" >serial) R) s" h% t$ A
[root@www CA]# openssl genrsa 1024 >private/cakey.pem
0 J- C y# b b6 AGenerating RSA private key, 1024 bit long modulus: L1 y6 @7 t, d5 T
........................++++++
0 Z6 V. ~) v$ Y. r' X....++++++2 _: Z# D8 q/ N) ?
e is 65537 (0x10001)9 u1 q5 @0 R3 {& e' X6 I8 _
[root@www CA]# chmod 600 private/cakey.pem
/ B; G0 p9 k9 S8 l, p: M0 d[root@www CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
, n! D& ?$ f* H' OCountry Name (2 letter code) [GB]:CN
9 v1 i. H" t; ^( y+ _' X2 H- CState or Province Name (full name) [Berkshire]:HENAN
4 t! |! h E* K: _ @Locality Name (eg, city) [Newbury]:ZHENGZHOU
7 S* z' Z/ K7 D- E! e8 zOrganization Name (eg, company) [My Company Ltd]:zzu
/ q% b' O3 e8 rOrganizational Unit Name (eg, section) []:junjie
# t3 S# m( q9 R& P, XCommon Name (eg, your name or your server's hostname) []:rootca.junjie.com3 f; b, u) e) x7 U' v& g0 v
Email Address []:master@junjie.com
: H$ K6 B2 v, H7 g4 o(3)为web服务器的签发证书
' R( S4 t0 L# y: d+ A: C[root@www CA]# mkdir /etc/httpd/certs
0 ^( S" \9 z/ s. N[root@www CA]#cd /etc/httpd/certs
# [* ~; ?+ | u- i[root@www certs]# openssl genrsa 1024 >httpd.key
4 ?8 Q& l. y; L6 yGenerating RSA private key, 1024 bit long modulus
& H3 b/ \6 _% E+ J* O- K..............++++++* e' L1 K( h: u
........++++++$ A$ h% v% M( W, h
e is 65537 (0x10001)
. m; a$ V1 @/ e& j[root@www certs]# chmod 600 httpd.key$ h6 L: Y0 l8 [, {
[root@www certs]# openssl req -new -key httpd.key -out httpd.csr8 @( N/ y5 |& `0 O4 |9 G
S$ X% U1 n2 e) QCountry Name (2 letter code) [GB]:CN+ w- O; y }) H; @' ?& \0 R' I. s. A
State or Province Name (full name) [Berkshire]:HENAN
' e$ D! {( {8 }! v6 CLocality Name (eg, city) [Newbury]:ZHENGZHOU
3 [7 a. T5 u# TOrganization Name (eg, company) [My Company Ltd]:zzu9 m) E: Q1 B: o1 r4 p( o1 L
Organizational Unit Name (eg, section) []:junjie
1 O7 G7 {9 K9 u LCommon Name (eg, your name or your server's hostname) []:www.junjie.com7 t7 U, l) n& v5 c
///
/ M6 u6 @! h8 i9 m5 W, q' Q$ H, N[root@www certs]# openssl ca -in httpd.csr -out httpd.crt
3 h/ G4 S0 k0 Z' f[root@www certs]# chmod 600 ** ]4 w0 Q+ T* h% g
(4)为web服务器的签发证书
+ b) t. v& _5 Z3 [+ i[root@www certs]# cd /etc/httpd/conf.d
* c$ O8 b2 r+ Q[root@www conf.d]# vim ssl.conf
/ ]! G' r* v, G7 ^! g112 SSLCertificateFile /etc/httpd/certs/httpd.crt
9 @ d2 L- N0 m% o1 V: Z119 SSLCertificateKeyFile /etc/httpd/certs/httpd.key+ x4 x! [$ i% K7 J' x! [
128 SSLCertificateChainFile /etc/pki/CA/cacert.pem
% q1 s! ` O) c" F7 r- q0 M(5)win7客户端使用https安全访问网页5 @3 Y! }/ r) T& d1 l' S2 _
[root@www ~]# service httpd restart #重启apache服务
* b+ M; S- x) n6 |1 F$ z7 RWin7客户端测试在C:WindowsSystem32driversetchosts添加:; {+ K) ^( ~7 h" y+ W
192.168.101.250 www.junjie.com
% K1 c* m5 v' h$ |使用win7的IE9测试,输入安全网址https://www.junjie.com
: s( Y" v! D( B! h+ `,此时浏览器提示安全警告,提示此网站的安全证书有问题,并将警告信息显示出来,具体如下:. }) ~6 s' }8 l
/ Z& r" E% @$ [ w$ Z! O* _
如若:用户强制继续访问,侧依然可以访问,但是浏览器地址栏中,已经变成红色报警信息,提示此网站不安全
( ~, z: b5 N" U( P8 Z, n& _( @! } ) K: Q9 l9 S( H" d {2 T0 S2 H4 s" T
说明:在此由于我没有使用IE9浏览器,没有解决证书问题,故又使用搜狗浏览器来解决证书错误问题!若,你可以帮助我解决请在本文留言,多谢了!4 ^# m5 ~# l! q# |+ w
使用搜狗解决问题方案如下:; K- W7 t) C; k. N; y c
, @7 w. c* @$ i" G
* E$ P' c, j7 d# [
此时,选择查看证书-证书路径-查看安装根证书和web服务器证书
! ?- E2 e/ B& a% A+ \9 ^9 G
0 R+ d$ t: y3 C- r" F# T( v8 z安装证书;
1 S/ d6 z" h0 D) w' c选择是继续安装证书,接着再查看就没有证书问题了,如下所示:
7 l; o, q. [1 z2 O9 r2 ^此时再win7下使用搜狗高速浏览器,Internet Explorer 9浏览器,都显示安全访问,如下所示:
) r+ Q2 T$ E6 M
) d6 r/ {5 Y' V查看证书信息:
1 g9 @% i( K; P, a 9 X8 n% J, F L2 c8 }
2 ^, ~/ I4 m1 I9 V
# H& R! M$ H2 f p7 W" }5 Q7 N
& u5 J; v( |6 B0 ]9 c/ i
! L$ r( @$ ?8 r; W: f: l" B& h9 `) ?9 o1 \: g( h
* P/ ^) w- h$ @$ ?: q" U* C. }. ]5 V9 E
- Y y9 u P! F
( @2 \- u$ a) E3 O' g0 i+ r
' H( r# y. @* V/ w5 k+ N; d1 | ]1 [& @ l) c+ Z0 [
|
|