apache httpd基于openssl的https配置案例


1、安装mod_ssl
yum -y install mod_ssl
安装后生成的主配置文件是:/etc/httpd/conf.d/ssl.conf

2、弄一台服务器做CA
cd /etc/pki/CA/
(umask 077;openssl genrsa -out private/cakey.pem)

编辑更改默认配置,改动下面配置的原因是在签证的时候就用我下面指定的默认值,免得每次都去输入
vim ../tls/openssl.cnf
[ req_distinguished_name ]
countryName_default = CN
stateOrProvinceName_default = SiChuan
localityName_default = ChengDu
0.organizationName_default = Sige
organizationalUnitName_default = Tech

生成自签证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
Common Name (eg, your name or your server's hostname)  这个地方就是以后证书上显示的颁发者

确保/etc/pki/CA/目录下有这个3个目录certs crl newcerts,没有就建上
touch index.txt
echo 01 >serial

3、回到web服务器192.168.100.24上来
假设我把证书放到/etc/httpd/ssl下
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
生成密钥
(umask 077; openssl genrsa 2048 > httpd.key)
生成证书颁发请求
openssl req -new -key httpd.key -out httpd.csr
填写一定要和CA上的一致
Common Name (eg, your name or your server's hostname) []:www.qq.com 我假设给这个域名用

4、把httpd.csr发送到CA服务器上开始签
openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 36550

5、把签好了的httpd.crt文件传回web服务器192.168.100.24上来,然后编辑ssl.conf配置服务器使用这个证书
vim /etc/httpd/conf.d/ssl.conf
主要是改这里<VirtualHost _default_:443>,改成下面的样子
<VirtualHost 192.168.200.24:443>
DocumentRoot "/var/www/qq"
ServerName www.qq.com:443
SSLCertificateFile /etc/httpd/ssl/httpd.crt #证书位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key #私钥位置

6、完成,验证
httpd -t
systemctl restart httpd
客户端验证

如果要客户端不提示不信任的证书,需要把CA服务器上的cacert.pem传到Windows上改名为cacert.crt,双击安装到受信任的根证书颁发机构就行了,以后就不会提示不信任


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM