在linux下的apache配置https协议,开启ssl连接
环境:linux
配置https协议,需要2大步骤:
一、生成服务器证书
1、安装openssl软件
yum install -y openssl mod_ssl
2、生成服务器私匙,生成server.key文件
openssl genrsa -des3 -out server.key 1024
3、填写证书信息,生成server.csr文件
openssl req -new -key server.key -out server.csr
4、为证书签证,生成server.crt文件
openssl x509 -req -days 700 -in server.csr -signkey server.key -out server.crt
5、移动生成的server.key文件,server.crt文件移到Apache的conf目录下
二、修改配置文件
1、修改httpd.conf文件,去掉下面两行代码的注释
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
2、修改httpd-ssl.conf文件,增加下面这些代码
<VirtualHost 192.169.20.1:443> ------配置虚拟主机
DocumentRoot /apache/htdoc ------要与httpd.conf的DocumentRoot的文件路一样
ServerName www.xxoo.com -------在浏览器里输入的域名
SSLEngine on -------开启ssl连接
SSLCertificateFile /etc/httpd/conf/server.crt ------与第一大步骤的第5小步骤的文件路径对应
SSLCertificateKeyFile /etc/httpd/conf/server.key ------与第一大步骤的第5小步骤的文件路径对应
</VirtualHost>
3、把httpd-ssl.conf文件中所有的apache的路径替换为当前安装的APACHE的路径(挺重要的)
4、修改httpd-ssl.conf的代码
SSLMutex "/usr/local/Apache2/logs/ssl_mutex"
改成
SSLMutex default
完成以上两个步骤后,重启Apache服务器。这时会要求输入密码(生成server.key时的密码)。最坑的是,密码输入正确了,但apache还是没开启,这个问题可以这样解决:问题解决,照做以下步骤即可:
cp server.key server.key.tmp
openssl rsa -in server.key.tmp -out server.key -------- 这时会要求你输入密码,输入生成server.key时的密码时就行
好了,现在重启apache就不会有输入密码的提示了。(其实,是清空了密码)。现在在浏览器输入: https://www.xxoo.com。就会出现跟http协议不一样的神奇页面了