/z4n?&tM https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
y&2O)z!B 一、安装apache和ssl模块
\C`2z]V% 1、安装apache
Y^'mBM#j #yum install httpd
ptTp63+ 2、安装ssl模块
Ce_l\J8G #yum install mod_ssl
h5@JS1cY 重启apache:
6"La`}B(T8 #service httpd restart
vtXZ`[D,l) 安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过https访问服务器了:
0[fqF^HEN https://X.X.X.X/
a`zw5 如果不使用默认的证书,也可以使用openssl手动创建证书。
>2K:O\& 二、使用openssl手动创建证书
<_-8)abK 1、安装openssl
CI@qT}Y_ #yum install openssl
tCr?!Y~ 2、生成服务器私钥
>w|2 ~oK #cd /etc/pki/tls
"y=AVO #openssl genrsa -out server.key 1024
Nrk/_0^ 注意:server.key是私钥。
n;*W#c 3、用私钥server.key文件生成证书请求文件csr
w-?Cg8bq< #openssl req -new -key server.key -out server.csr
e"v oXe 注:server.csr是证书请求文件。
S&;D 此步骤需要输入一些证书信息:
/SQ1i}% Country Name (2 letter code) [XX]:CN
2f.4P]s`T State or Province Name (full name) []:shanghai
JbEQ35r Locality Name (eg, city) [Default City]:shanghai
!<j)D_ Organization Name (eg, company) [Default Company Ltd]:ccc
/&G )IY]g Organizational Unit Name (eg, section) []:bbb
,SSq4 Common Name (eg, your name or your server's hostname) []:
www.test.com "\1QJ Email Address []:a@a.com
%%f(R7n 输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个challengepassword(密码),无需输入,后面一律直接回车即可。
]eIV'lP,j/ 4、生成数字签名crt文件(证书文件)
Rz!! ;<ye8 #openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
cp<jwcc! 用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
6i_dL|c 5、编辑apache的ssl配置文件
xl;0&/7e vim/etc/httpd/conf.d/ssl.conf
lT~A~O /etc/httpd/conf.d/ssl.conf文件配置具体如下:
y]TNjLpo$ <VirtualHost _default_:443>
Jl(G4h V'\ DocumentRoot "/var/www/https" //设置网页存放目录
j9/Ev]im|F ServerName *:443 //服务器的端口
om}jQJ]KH DirectoryIndex index.html index.html.var //首页名称
3WQ"3^G SSLEngine on
Vm
<9/UG< SSLCertificateFile /etc/pki/tls/server.crt //证书
W;@9x1jKX SSLCertificateKeyFile /etc/pki/tls/server.key //私钥
S2*ER </VirtualHost>
s;4r)9Uvx 6、重启apache
!wZ9P #servicehttpd restart
7f\@3r 访问
https://ip/,就能看到证书信息了。
gaXKP1m^ 由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
#J<IHNRt !!!注意:首页index.html 的文件权限为755,否则将会出现如上提示: zr5(nAl Forbidden
lYMNx|PF Youdon't have permission to access /main.html on this server.
n%YG)5; 解决方法:修改首页index.html读写权限。
5};$>47m #Chmod755 index.html
3 @7<e~f 关于openssl指令的补充说明: HAr_z@#E #openssl [操作] -out filename [bits]
p~xrl jP$ 参数说明:
N2x!RYW [操作] 主要的操作有如下两个:
IAJYD/Y&? genrsa,建立RSA加密的Public key
+#d}3^_] req,建立凭证要求文件或者是凭证文件
'#b7Z?83C -out ,后面加上输出的文件名,就是那把key name
j{;RuNt bits,用在genrsa加密的公钥的长度
_\tGmME37 -x509,X.509,CertificateData Management. 一种验证的管理方式
<15POB 例:建立一支长度为1024bits的Public Key,注意文件名。
6^DsI #openssl genrsa -out Server.key 1024
_>moza 生成证书请求命令:
iC{~~W6 #Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
kH43 T -config:指定openssl的配置文件路径,不指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/openssl.cnf。
?"aj&,q+ 例:#openssl req -new -key server.key -outserver.csr