>)#c\{c
https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
;A#~`P 一、安装apache和ssl模块
P]6}\
]~ 1、安装apache
3LK%1+)4 #yum install httpd
2CLB1 2、安装ssl模块
WH$HI/%*m #yum install mod_ssl
49h0^;xlo: 重启apache:
'"xiS$b( #service httpd restart
a G27%(@ 安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过https访问服务器了:
v\A.Tyy https://X.X.X.X/
(_+;R 如果不使用默认的证书,也可以使用openssl手动创建证书。
>Y&KTSD" 二、使用openssl手动创建证书
iuAq.$oi{ 1、安装openssl
O|z%DkH[ #yum install openssl
TOT
PzB 2、生成服务器私钥
2Rptxb_@ #cd /etc/pki/tls
!nw[ #openssl genrsa -out server.key 1024
+R\~3uj[7 注意:server.key是私钥。
HeS'~Z$ 3、用私钥server.key文件生成证书请求文件csr
-Ktwo_V* #openssl req -new -key server.key -out server.csr
JvJ;bFXD 注:server.csr是证书请求文件。
w}k B6o] 此步骤需要输入一些证书信息:
GX38~pq Country Name (2 letter code) [XX]:CN
-!R
l(if State or Province Name (full name) []:shanghai
0wvU?z%WK Locality Name (eg, city) [Default City]:shanghai
S0xIvzS Organization Name (eg, company) [Default Company Ltd]:ccc
+x]e-P% Organizational Unit Name (eg, section) []:bbb
^
f{qJ[, Common Name (eg, your name or your server's hostname) []:
www.test.com `|,tCM&- Email Address []:a@a.com
-$R5 输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个challengepassword(密码),无需输入,后面一律直接回车即可。
cx:jUsb6 4、生成数字签名crt文件(证书文件)
VjTAN= #openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
8S= c^_PJ 用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
9|a)sb7/ 5、编辑apache的ssl配置文件
Q9q9<J7j$ vim/etc/httpd/conf.d/ssl.conf
>fwlg- /etc/httpd/conf.d/ssl.conf文件配置具体如下:
+V89J!7 <VirtualHost _default_:443>
STRyW Ml DocumentRoot "/var/www/https" //设置网页存放目录
[Ekgft& ServerName *:443 //服务器的端口
+1f{_v DirectoryIndex index.html index.html.var //首页名称
b)y<.pS\ SSLEngine on
|vT=Nnu SSLCertificateFile /etc/pki/tls/server.crt //证书
qIk
)'!Vk SSLCertificateKeyFile /etc/pki/tls/server.key //私钥
Y?e3B x7*b </VirtualHost>
-%N}A3m!5 6、重启apache
z22N7W=7 #servicehttpd restart
rcW#6VZ= 访问
https://ip/,就能看到证书信息了。
$q.p$JQ: 由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
?({Pc F/ !!!注意:首页index.html 的文件权限为755,否则将会出现如上提示: &a~L_`\' Forbidden
BD?F`%-x Youdon't have permission to access /main.html on this server.
YU*46 hA1B 解决方法:修改首页index.html读写权限。
_{3k+DQ #Chmod755 index.html
&0FpP&Z( 关于openssl指令的补充说明: ]Oig..LJ #openssl [操作] -out filename [bits]
?Of{c,2 . 参数说明:
t>m8iS> [操作] 主要的操作有如下两个:
k-;.0!D^ genrsa,建立RSA加密的Public key
DKf}47y req,建立凭证要求文件或者是凭证文件
'JJ1#kKa -out ,后面加上输出的文件名,就是那把key name
q^Q|.&_k / bits,用在genrsa加密的公钥的长度
FA<Z37: -x509,X.509,CertificateData Management. 一种验证的管理方式
1"*Nb5s 例:建立一支长度为1024bits的Public Key,注意文件名。
\5j22L9S #openssl genrsa -out Server.key 1024
#mi0x06 生成证书请求命令:
rHA/
#Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
]QjXh> -config:指定openssl的配置文件路径,不指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/openssl.cnf。
^F;Z%5P= 例:#openssl req -new -key server.key -outserver.csr