ne%ckW?ks https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
yA~W|q(/V 一、安装apache和ssl模块
J}BS/Tr}= 1、安装apache
l&zd7BM9( #yum install httpd
^j@,N&W:lG 2、安装ssl模块
KdUmetx1 #yum install mod_ssl
EI'( 重启apache:
e(cctC|l #service httpd restart
Rh iiQ 安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过https访问服务器了:
+PjH2 https://X.X.X.X/
^J?I-LG 如果不使用默认的证书,也可以使用openssl手动创建证书。
k \|Hd"T 二、使用openssl手动创建证书
V1M oW;& 1、安装openssl
V#zDYrp #yum install openssl
F4@``20| 2、生成服务器私钥
L9(fa+$+# #cd /etc/pki/tls
\)pk/ #openssl genrsa -out server.key 1024
mJl|dk_c 注意:server.key是私钥。
>O?5mfMK 3、用私钥server.key文件生成证书请求文件csr
y]yp8Bs+ #openssl req -new -key server.key -out server.csr
wpO-cJ!, 注:server.csr是证书请求文件。
|}t[-a 此步骤需要输入一些证书信息:
%&0_0BU Country Name (2 letter code) [XX]:CN
\:, dWLu State or Province Name (full name) []:shanghai
$5Jo%K% Locality Name (eg, city) [Default City]:shanghai
/Ii a >XY Organization Name (eg, company) [Default Company Ltd]:ccc
Z7lv|m& Organizational Unit Name (eg, section) []:bbb
8K=sx@l Common Name (eg, your name or your server's hostname) []:
www.test.com zo4 IY`3 Email Address []:a@a.com
fO|oV0Rw 输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个challengepassword(密码),无需输入,后面一律直接回车即可。
e@|/, W 4、生成数字签名crt文件(证书文件)
)*Xd #openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
vau0Jn%=ck 用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
JI##l:,7r 5、编辑apache的ssl配置文件
{]ie|>'=C vim/etc/httpd/conf.d/ssl.conf
v0v%+F#>@ /etc/httpd/conf.d/ssl.conf文件配置具体如下:
%iMRJ}8(7 <VirtualHost _default_:443>
:!Ea.v DocumentRoot "/var/www/https" //设置网页存放目录
{kVhht]X ServerName *:443 //服务器的端口
U(*k:Fw DirectoryIndex index.html index.html.var //首页名称
zI1-l9 o SSLEngine on
*c<0cHv* SSLCertificateFile /etc/pki/tls/server.crt //证书
" b?1Yc- SSLCertificateKeyFile /etc/pki/tls/server.key //私钥
St 4YNS.| </VirtualHost>
!5FZxmUup 6、重启apache
zPWJ=T@N #servicehttpd restart
&"G4yM 访问
https://ip/,就能看到证书信息了。
X=_`$
0 由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
{[Sd[P !!!注意:首页index.html 的文件权限为755,否则将会出现如上提示: \r4QS Forbidden
=gG_ %]``R Youdon't have permission to access /main.html on this server.
Ro1b (+H 解决方法:修改首页index.html读写权限。
LY>-kz] #Chmod755 index.html
"j(?fVx 关于openssl指令的补充说明: =~7%R.U([e #openssl [操作] -out filename [bits]
q>JW$8 参数说明:
Nhq&Sn2 [操作] 主要的操作有如下两个:
IYb%f T genrsa,建立RSA加密的Public key
+vR$% req,建立凭证要求文件或者是凭证文件
2`|1 !x -out ,后面加上输出的文件名,就是那把key name
?z
"fp$ bits,用在genrsa加密的公钥的长度
g(9\r -x509,X.509,CertificateData Management. 一种验证的管理方式
^Md]e<WAp 例:建立一支长度为1024bits的Public Key,注意文件名。
aahAUhF #openssl genrsa -out Server.key 1024
+@
'(N 生成证书请求命令:
H[K(Tt4<& #Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
-85]x)JE -config:指定openssl的配置文件路径,不指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/openssl.cnf。
,}9 G|$ 例:#openssl req -new -key server.key -outserver.csr