x=0Ak'1M https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
bLl
?!G. 一、安装apache和ssl模块
;xq;c\N 1、安装apache
9Cd=^Im5 #yum install httpd
Wv5=$y 2、安装ssl模块
?/}IDwuh #yum install mod_ssl
e]1)_;b* 重启apache:
k=t{o #service httpd restart
O|m-[] 安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过https访问服务器了:
S]E|a@kD3 https://X.X.X.X/
Hj-n
'XZ 如果不使用默认的证书,也可以使用openssl手动创建证书。
@0:Eg 1- 二、使用openssl手动创建证书
WO69Wo\C 1、安装openssl
FBi&MZ` #yum install openssl
9R+ qw 2、生成服务器私钥
JWM4S4yZHR #cd /etc/pki/tls
SP=8v0 #openssl genrsa -out server.key 1024
^~B#r# 注意:server.key是私钥。
(=%0x"' 3、用私钥server.key文件生成证书请求文件csr
zcV~)go6 #openssl req -new -key server.key -out server.csr
M%13b$i~f 注:server.csr是证书请求文件。
NljcHe}Qy 此步骤需要输入一些证书信息:
Rs]Y/9F;{ Country Name (2 letter code) [XX]:CN
lA,[& State or Province Name (full name) []:shanghai
O8*yho Locality Name (eg, city) [Default City]:shanghai
-<\hcV`& Organization Name (eg, company) [Default Company Ltd]:ccc
6
#jpA.; Organizational Unit Name (eg, section) []:bbb
a{I(Qh!} Common Name (eg, your name or your server's hostname) []:
www.test.com ;|vn;s/ Email Address []:a@a.com
{us#(4O 输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个challengepassword(密码),无需输入,后面一律直接回车即可。
s9b+uUt% 4、生成数字签名crt文件(证书文件)
.P!pC #openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
x]"N:t 用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
CDFX>>N 5、编辑apache的ssl配置文件
>s%m\"|oh vim/etc/httpd/conf.d/ssl.conf
%c&<{D}r /etc/httpd/conf.d/ssl.conf文件配置具体如下:
8{%[|Ye <VirtualHost _default_:443>
RZ9chTX/ DocumentRoot "/var/www/https" //设置网页存放目录
-H](2} ServerName *:443 //服务器的端口
HqKD]1 DirectoryIndex index.html index.html.var //首页名称
ET=-r SSLEngine on
$-BM`Zt0; SSLCertificateFile /etc/pki/tls/server.crt //证书
5uvFCY./c SSLCertificateKeyFile /etc/pki/tls/server.key //私钥
cY%6+uJ1 </VirtualHost>
;fKFmY41 6、重启apache
4wx_@8 #servicehttpd restart
af;~<oa 访问
https://ip/,就能看到证书信息了。
p V`) 由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
L=-v>YL+ !!!注意:首页index.html 的文件权限为755,否则将会出现如上提示: jf~-;2 Forbidden
#bdSH)V Youdon't have permission to access /main.html on this server.
~BD 80s:f 解决方法:修改首页index.html读写权限。
#TKByOcD2! #Chmod755 index.html
EPGp8VGXp~ 关于openssl指令的补充说明: C:@JLZB #openssl [操作] -out filename [bits]
J^<}fRw 参数说明:
4ROuy+Ms' [操作] 主要的操作有如下两个:
^Jdji: genrsa,建立RSA加密的Public key
?*2Uw{~} req,建立凭证要求文件或者是凭证文件
A1V^Gi@i -out ,后面加上输出的文件名,就是那把key name
0}iND$6@a bits,用在genrsa加密的公钥的长度
AvEd? -x509,X.509,CertificateData Management. 一种验证的管理方式
)xj!7:n) 例:建立一支长度为1024bits的Public Key,注意文件名。
QO(P_az3mg #openssl genrsa -out Server.key 1024
k86j&
.m_ 生成证书请求命令:
?0k4l8R #Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
Rt2<F-gY -config:指定openssl的配置文件路径,不指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/openssl.cnf。
^4 ?LQ[t' 例:#openssl req -new -key server.key -outserver.csr