https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
@H_
618_16@ 一、安装apache和ssl模块
@H_
618_16@ 1、安装apache
@H_
618_16@ #yum install
httpd
@H_
618_16@ 2、安装ssl模块
@H_
618_16@ #yum install mod_ssl
@H_
618_16@ 重启apache:
@H_
618_16@ #
service
httpd restart
@H_
618_16@ 安装完mod_ssl会创建
一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过
https访问服务器了:
@H_
618_16@
https://X.X.X.X/
@H_
618_16@ 如果不使用
默认的证书,也可以使用openssl手动创建证书。
@H_
618_16@ 二、使用openssl手动创建证书
1、
安装openssl
@H_
618_16@ #yum install openssl
@H_
618_16@ 2、
生成服务器私钥
@H_
618_16@ #cd /etc/pki/tls
#openssl genrsa -out server.key 1024
@H_
618_16@ 注意:server.key是私钥。
@H_
618_16@ 3、用私钥server.key@L_
262_5@
生成证书请求@L_
262_5@csr
@H_
618_16@ #openssl req -new -key server.key -out server.csr
@H_
618_16@ 注:server.csr是证书请求@L_
262_5@。
@H_
618_16@ 此步骤需要输入一些证书信息:
Country Name (2 letter cod
E) [XX]:CN
State or
province Name (full
Name) []:shanghai
Locality Name (eg,city) [Default City]:shanghai
Organization Name (eg,company) [Default Company Ltd]:ccc
Organizational Unit Name (eg,section) []:bbb
Common Name (eg,your name or your server's host
Name) []:www.test.com
Email Address []:a@a.com
@H_
618_16@ 输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入
一个ch
ALLENge
password(密码),无需输入,后面一律直接回车
即可。
@H_
618_16@ 4、
生成数字签名crt@L_
262_5@(证书@L_
262_5@)
@H_
618_16@ #
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
@H_
618_16@ 用私钥签名证书请求@L_
262_5@,证书的申请机构和颁发机构都是自己。
@H_
618_16@ 5、编辑apache的ssl
配置文件
@H_
618_16@ vim/etc/
httpd/conf.d/ss
l.conf
@H_
618_16@ /etc/
httpd/conf.d/ss
l.conf@L_
262_5@配置具体如下:
@H_
618_16@ <VirtualHost _default_
:443>
@H_
618_16@ DocumentRoot "/var/www/
https" //设置网页存放目录
@H_
618_16@ ServerName *
:443 //服务器的端口
@H_
618_16@ DirectoryIndex index.html index.htm
l.var //
首页名称
@H_
618_16@ SSL
ENGIne on
@H_
618_16@ SSLCertificateFile /etc/pki/tls/server.crt //证书
@H_
618_16@ SSLCertificateKeyFile /etc/pki/tls/server.key //私钥
@H_
618_16@ </VirtualHost>
6、重启apache
#
service
httpd restart
访问
https://ip/,就能看到证书信息了。
@H_
618_16@ 由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会
提示安全证书不受信任。
@H_
618_16@
!!!注意:首页index.html 的@L_262_5@权限为755,否则将会出现如上提示:
@H_
618_16@ Forbidden
@H_
618_16@ Youdon't have permission to access /main.html on this server.
@H_
618_16@
解决方法:
修改首页index.html读写权限。
@H_
618_16@ #Chmod755 index.html
@H_
618_16@
关于openssl指令的补充说明:
@H_
618_16@ #openssl [操作] -out fil
ename [bits]
@H_
618_16@ 参数说明:
@H_
618_16@ [操作] 主要的操作有如下两个:
@H_
618_16@ genrsa,建立RSA加密的Public key
@H_
618_16@ req,建立凭证要求@L_
262_5@或者是凭证@L_
262_5@
@H_
618_16@ -out ,后面
加上输出的@L_
262_5@名,就是那把key name
@H_
618_16@ bits,用在genrsa加密的公钥的长度
@H_
618_16@ -x509,X.509,CertificateData Management. 一种验证的管理方式
@H_
618_16@
例:建立一支长度为1024bits的Public Key,注意@L_
262_5@名。
@H_
618_16@ #openssl genrsa -out Server.key 1024
@H_
618_16@
生成证书请求命令:
@H_
618_16@ #Openssl req -new -key file.key -out file.csr -con
fig /path/to/openss
l.cnf
@H_
618_16@ -con
fig:指定openssl的
配置文件路径,不指定时,
默认会访问Unix格式的
默认路径:/usr/local/ssl/openss
l.cnf。
@H_
618_16@
例:#openssl req -new -key server.key -outserver.csr