Centos Apache基于openssl的https服务配置

2016年11月13日20:47:56 发表评论 4,148 ℃

为了模拟真实环境,这里使用的两台服务器做测试,也可以在一台服务器操作下面的步骤。

私有CA认证机构(192.168.100.200)

1、cd /etc/pki/CA

2、(umask 077; openssl genrsa -out private/cakey.pem) #生成一对密钥

3、openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3667 #生成自签证书,然后填写相关信息,后面web服务器生成证书颁发请求时候填写的信息要一致,由于前面5项我已经在/etc/pki/tls/openssl.cnf 定义好了默认信息,这里都默认。

Centos Apache基于openssl的https服务配置

4、vim /etc/pki/tls/openssl.cnf  #编辑此文件

找到[ CA_default ]

将下面的 dir             = ../../CA 

改成绝对路径: dir             = /etc/pki/CA 

Centos Apache基于openssl的https服务配置

5、mkdir certs crl newcerts

 touch index.txt

 echo 00 > serial  #设置序列号

web服务器配置(192.168.100.100)

1、yum install -y httpd    #安装apache

2、yum install -y mod_ssl   #安装ssl模块

3、vim /etc/httpd/conf/httpd.conf

找到DocumentRoot "/var/www/html" 前面加上#注释,即取消中心主机,开启虚拟主机

4、vim /etc/httpd/conf.d/amd5.cn.conf添加下面内容

    <VirtualHost 192.168.100.100:80>

        ServerAdmin admin@amd5.cn 

        DocumentRoot /www/html/amd5.cn/web

        ServerName amd5.cn

        Serveralias www.amd5.cn

        ErrorLog /www/html/amd5.cn/logs/error_log

        CustomLog /www/html/amd5.cn/logs/access_log common

    </VirtualHost>

5、mkdir -pv /www/html/amd5.cn/{web,logs}

6、mkdir /etc/httpd/ssl

7、cd /etc/httpd/ssl

8、(umask 077; openssl genrsa 1024 >amd5.key) #创建一对1024位长度的密钥

9、openssl req -new -key amd5.key -out amd5.csr  #生成证书颁发请求(然后将请求传送给CA服务器),此处填写的信息要和前面CA生成自签证书时候填写的信息要一致,这里我没有修改配置文件,所以手动填写。

Centos Apache基于openssl的https服务配置

10、 scp amd5.csr root@192.168.100.200:/root/ #复制请求到CA认证服务器

    远程到CA认证服务器192.168.100.200然后执行下面命令

    openssl ca -in /root/amd5.csr -out /root/amd5.crt -days 3650 #CA端 签署此证书10年的有效期

    错误1:

    wrong number of fields on line 1 (looking for field 6, got 1, '' left)

    原因是你的index.txt文件不为空,改为空文件即可。

    错误2:

    error while loading serial number

    3078239980:error:0D066096:asn1 encoding routines:a2i_ASN1_INTEGER:short line:f_int.c:215:

    原因:是因为serial文件中没有赋初值,即没有执行echo 00 > serial

Centos Apache基于openssl的https服务配置

11、scp root@192.168.100.200:/root/amd5.crt ./etc/httpd/ssl/  #下载签署以后的证书到web服务器/etc/httpd/ssl/目录

12、cd /etc/httpd/conf.d

    cp ssl.conf ssl.conf.bak #备份ssl.conf文件

    vim ssl.conf  #编辑此文件

1.找到<VirtualHost _default_:443>改成<VirtualHost 192.168.100.100:443>

2.找到:

      #DocumentRoot "/var/www/html"

      #ServerName www.example.com:443

在下面添加两行

     ServerName www.amd5.cn

     DocumentRoot "/www/html/amd5.cn/web/"

3.找到SSLCertificateFile /etc/pki/tls/certs/localhost.crt

 改成SSLCertificateFile /etc/httpd/ssl/amd5.crt

4.找到SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

 改成SSLCertificateKeyFile /etc/httpd/ssl/amd5.key

13、service httpd restart

 查看443端口是否被监听lsof -i:443

Centos Apache基于openssl的https服务配置

14、vim /etc/sysconfig/iptables添加下面一行,允许443端口外部访问

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT  

    /etc/init.d/iptables restart  #重启防火墙让修改生效

15、修改本地host文件,C:\Windows\System32\drivers\etc添加一行:

192.168.100.100 www.amd5.cn

16、本地浏览器输入https://www.amd5.cn  访问测试。

Centos Apache基于openssl的https服务配置

Centos Apache基于openssl的https服务配置

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: