共计 2095 个字符,预计需要花费 6 分钟才能阅读完成。
https 是一个安全的访问方式,数据在传输过程中是加密的,https 基于 SSL。
一、安装 apache 和 ssl 模块
1、安装 apache
#yum install httpd
2、安装 ssl 模块
#yum install mod_ssl
重启 apache:
#service httpd restart
安装完 mod_ssl 会创建一个默认的 SSL 证书,路径位于 /etc/pki/tls,此时可以立即通过 https 访问服务器了:
https://X.X.X.X/
如果不使用默认的证书,也可以使用 openssl 手动创建证书。
二、使用 openssl 手动创建证书
1、安装 openssl
#yum install openssl
2、生成服务器私钥
#cd /etc/pki/tls
#openssl genrsa -out server.key 1024
注意:server.key 是私钥。
3、用私钥 server.key 文件生成证书请求文件 csr
#openssl req -new -key server.key -out server.csr
注:server.csr 是证书请求文件。
此步骤需要输入一些证书信息:
Country Name (2 letter code) [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 hostname) []:www.test.com
Email Address []:a@a.com
输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个 challengepassword(密码),无需输入,后面一律直接回车即可。
4、生成数字签名 crt 文件(证书文件)
#openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
5、编辑 apache 的 ssl 配置文件
vim/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/ssl.conf 文件配置具体如下:
<VirtualHost _default_:443>
DocumentRoot “/var/www/https” // 设置网页存放目录
ServerName *:443 // 服务器的端口
DirectoryIndex index.html index.html.var // 首页名称
SSLEngine on
SSLCertificateFile /etc/pki/tls/server.crt // 证书
SSLCertificateKeyFile /etc/pki/tls/server.key // 私钥
</VirtualHost>
6、重启 apache
#servicehttpd restart
访问 https://ip/,就能看到证书信息了。
由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
!!! 注意:首页 index.html 的文件权限为 755,否则将会出现如上提示:
Forbidden
Youdon’t have permission to access /main.html on this server.
解决方法:修改首页 index.html 读写权限。
#Chmod755 index.html
关于 openssl 指令的补充说明:
#openssl [操作] -out filename [bits]
参数说明:
[操作] 主要的操作有如下两个:
genrsa,建立 RSA 加密的 Public key
req,建立凭证要求文件或者是凭证文件
-out,后面加上输出的文件名,就是那把 key name
bits,用在 genrsa 加密的公钥的长度
-x509,X.509,CertificateData Management. 一种验证的管理方式
例:建立一支长度为 1024bits 的 Public Key,注意文件名。
#openssl genrsa -out Server.key 1024
生成证书请求命令 :
#Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
-config:指定 openssl 的配置文件路径,不指定时,默认会访问 Unix 格式的默认路径:/usr/local/ssl/openssl.cnf。
例:#openssl req -new -key server.key -outserver.csr
更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14