环境:CentOS,yum方式安装apache。
综合网上教程,首先需要下载安装openssl,windows或者linux应该都可以,本次以在windows上生成证书为例,首先在openssl的bin目录下,创建一个文本格式的配置文件,例如openssl.cfg,内如按照如下方式输入:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = yes
[req_distinguished_name]
C = CN
ST = SX
L = XA
O = mowblog
OU = Jerome.Ma
CN = mowblog.com
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
因为我们不需要去证书发放组织申请正式的证书,只是为了让apache支持https,以方便在不安全的环境下登陆blog进行操作。所以上面req_distinguished_name项里面的信息,除了CN按照网上方言应该配置为自己的域名之外,其余都可以自由修改,在创建配置文件之后,就可以开始生成证书,执行如下三步:
openssl genrsa -out mow.key 2048
openssl req -new -key mow.key -out mow.csr -config openssl.cfg
openssl req -x509 -days 3650 -key mow.key -in mow.csr -out mow.crt -config openssl.cfg
执行完之后就会生成三个文件:mow.key/mow.csr/mow.crt,然后安装apache的ssl模块,在CentOS上运行
yum install mod_ssl
成功之后就会发现在/etc/httpd/conf.d下面多了一个ssl.conf的配置文件,按照下面方式修改此配置文件:
将
<VirtualHost _default_:443>
修改为
<VirtualHost mowblog.com:443>
将
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
修改为
SSLCertificateFile /etc/pki/tls/certs/mow.crt
SSLCertificateKeyFile /etc/pki/tls/private/mow.key
保存之后,按照上面的路径上传mow.crt和mow.key两个文件,然后重启httpd服务,正常的话应该就可以通过https://mowblog.com来访问我们的网址了。此种方式配置之后,如果不添加https去访问mowblog.com会是以http的方式进行的,推测应该是httpd.conf中virtualhost里面也配置了<VirtualHost mowblog.com:80>导致的,不过这倒也是一个好现象,因为搬瓦工上用ssl实在是太慢了,让普通访问依旧使用http也未尝不是一件好事。
用这总方式添加的证书自然是通不过验证的,所以EDGE浏览器可能会不支持,Chrome和Firefox也会提示站点不可信,不过这不妨碍服务器加密,可以通过抓包的方式,对比一下访问http和https情况下,消息内容到底如何:
如下使用HTTP方式,可以明文看到HTTP协议和TCP协议传输的所有内容
使用HTTPS方式,所有的内容都是以密文形式出现的,而协议类型也变成了TLSv1.2