Centos Apache基于openssl的https服務配置

2016年11月13日20:47:56 發表評論 5,710 ℃

為了模擬真實環境,這里使用的兩臺服務器做測試,也可以在一臺服務器操作下面的步驟。

私有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 m.maowutv.com

        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 m.maowutv.com

     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 m.maowutv.com

16、本地瀏覽器輸入http://m.maowutv.com  訪問測試。

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: