搭建Apache服務器並使用自簽證書實現https訪問


  實驗環境:兩台Centos7.2的虛擬機,一台作CA服務器,一台作Apache服務器,此處安裝httpd-2.4.6的版本.

1)CA服務器

# 私鑰一般存放位置:/etc/pki/CA/private
  [root@happiness ~]# cd /etc/pki/CA/private
# 生成私鑰
  [root@happiness private]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
# 生成自簽證書,有效期365天
  [root@happiness private]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
      -new:生成新證書簽署請求;
      -x509:生成自簽格式證書,專用於創建私有CA時使用;
      -key:生成請求時用到的私有文件路徑;
      -out:生成的請求文件路徑;如果自簽操作將直接生成簽署過的證書;
      -days:證書的有效時長,單位是day
# 為CA提供所需的文件   [root@happiness
CA]# touch /etc/pki/CA/{serial,index.txt   [root@happiness CA]# echo 01 > /etc/pki/CA/serial

2)Apache服務器

 Centos7.2已經默認安裝好httpd-2.4.6和openssl,如果沒有安裝可以配置好yum源進行安裝。

  [root@happiness ~]# mkdir /etc/httpd/ssl
  [root@happiness ~]# cd /etc/httpd/ssl
# 生成私鑰
  [root@happiness ssl]# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
# 生成證書簽署請求
  [root@happiness ssl]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
  注意:此處生成請求時填寫的信息,需要跟CA生成證書時的信息保持一致。 # 把證書請求發給CA服務器   [root@happiness ssl]# scp httpd.csr root@192.168.4.119:/tmp/

3)CA服務器

# 簽署證書
  [root@happiness ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
# 傳輸給Apache服務器
  [root@happiness ~]# spc /etc/pki/CA/certs/httpd.crt root@192.168.4.50:/etc/httpd/ssl/

4)Apache服務器

# httpd-2.4.6默認沒安裝ssl模塊,自行安裝
  [root@happiness ~]# yum install mod_ssl -y
# 安裝后生成的文件信息
  [root@happiness ~]# rpm -ql mod_ssl
  /etc/httpd/conf.d/ssl.conf
  /etc/httpd/conf.modules.d/00-ssl.conf
  /usr/lib64/httpd/modules/mod_ssl.so
  /usr/libexec/httpd-ssl-pass-dialog
  /var/cache/httpd/ssl
# 編輯ssl配置文件
  [root@happiness ~]# vim /etc/httpd/conf.d/ssl.conf
# 編輯httpd配置文件
  [root@happiness ~]# vim /etc/httpd/conf/httpd.conf
# 啟動httpd服務
  [root@happiness ~]# systemctl start httpd

 5)瀏覽器測試

后話:

  實驗過程中,由於自己在/etc/httpd/conf/httpd.conf配置中又添加了"Listen 443",導致啟動httpd無法啟動服務,查看錯誤日志:cat /var/log/httpd/error_log。

  安裝mod_ssl模塊后生成的配置文件/etc/httpd/conf.d/ssl.conf中,已經啟用監聽443端口,無須在主配置文件httpd.conf再添加。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM