!i torSl https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
?z.?(xZ 6 一、安装apache和ssl模块
e6taQz@} 1、安装apache
`PbY(6CF #yum install httpd
A;L
]=J 2、安装ssl模块
%j\&}>P4$ #yum install mod_ssl
?+Gt?-! 5q 重启apache:
)J[m>tyY5 #service httpd restart
:Dty([ 安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过https访问服务器了:
bh@Ct nO https://X.X.X.X/
(?Mn_FNE| 如果不使用默认的证书,也可以使用openssl手动创建证书。
Sh(ys*y> 二、使用openssl手动创建证书
*F1TZ_GS 1、安装openssl
684& H8 #yum install openssl
3JGrJ!x 2、生成服务器私钥
W On<;'}M& #cd /etc/pki/tls
W^8 #openssl genrsa -out server.key 1024
5a/A?9?, 注意:server.key是私钥。
)pl5nu#< 3、用私钥server.key文件生成证书请求文件csr
|~5cNm #openssl req -new -key server.key -out server.csr
{
YQS fk 注:server.csr是证书请求文件。
RTh=x. 此步骤需要输入一些证书信息:
d'96$e o~ Country Name (2 letter code) [XX]:CN
uZL]mwkj] State or Province Name (full name) []:shanghai
=x-7 Wy Locality Name (eg, city) [Default City]:shanghai
F:m6Mf7L Organization Name (eg, company) [Default Company Ltd]:ccc
{j$2=0Cec Organizational Unit Name (eg, section) []:bbb
?7NSp2aq2A Common Name (eg, your name or your server's hostname) []:
www.test.com -u@ ^P7 Email Address []:a@a.com
lPZ># 输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个challengepassword(密码),无需输入,后面一律直接回车即可。
~+1mH 4、生成数字签名crt文件(证书文件)
ht%qjE #openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
F%
n}vA` 用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
;<0vvP| 5、编辑apache的ssl配置文件
n5C,Z!)z vim/etc/httpd/conf.d/ssl.conf
*{VC<<` /etc/httpd/conf.d/ssl.conf文件配置具体如下:
0s-K oz <VirtualHost _default_:443>
iYB c4'X DocumentRoot "/var/www/https" //设置网页存放目录
KWo Ps%G ServerName *:443 //服务器的端口
!@lx|=# DirectoryIndex index.html index.html.var //首页名称
BR|0uJ.M SSLEngine on
JL
G!;sov SSLCertificateFile /etc/pki/tls/server.crt //证书
L|WrdT D; SSLCertificateKeyFile /etc/pki/tls/server.key //私钥
?jz\[0)s </VirtualHost>
_yAY5TIv 6、重启apache
zlP{1z;nV #servicehttpd restart
Rw
`ezC# 访问
https://ip/,就能看到证书信息了。
k~AtnI 由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
564L.^$@| !!!注意:首页index.html 的文件权限为755,否则将会出现如上提示: 1|8Bv0-b Forbidden
:q3w;B~ Youdon't have permission to access /main.html on this server.
1\,k^Je7 解决方法:修改首页index.html读写权限。
:ILpf+`yY #Chmod755 index.html
MOh&1]2j5 关于openssl指令的补充说明: 3r#['UmT #openssl [操作] -out filename [bits]
?,7!kTRH 参数说明:
vfn[&WN] [操作] 主要的操作有如下两个:
?@PSD\
genrsa,建立RSA加密的Public key
|BM#r fQ req,建立凭证要求文件或者是凭证文件
w=?nD6Xhz -out ,后面加上输出的文件名,就是那把key name
68GH$ji bits,用在genrsa加密的公钥的长度
o|d:rp!^ -x509,X.509,CertificateData Management. 一种验证的管理方式
>n/0od9 例:建立一支长度为1024bits的Public Key,注意文件名。
6<@+J #openssl genrsa -out Server.key 1024
U"|1@W# 生成证书请求命令:
m$W2E.-$'# #Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
!BW!!/U -config:指定openssl的配置文件路径,不指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/openssl.cnf。
h
#gI1(uL 例:#openssl req -new -key server.key -outserver.csr