Linux之CA認證


Linux之CA認證

簡介

CA 概述: Certificate Authority 的縮寫,通常翻譯成認證權威或者認證中心,主要用途是為用戶發放數字證書。 CA 認證的流程和公安局派出所頒發身份證的流程一樣

認證中心功能

  • 證書發放
  • 證書更新
  • 證書撤銷
  • 證書驗證

CA功能

  • 用戶認證
  • 數據不可否認性

證書認證過程

  • 客戶端向服務端發送請求文件
  • 服務端接受客戶端的請求文件確認申請者是否合法
  • 服務端使用私鑰將請求文件進行數據加密生成證書文件
  • 將生成的證書文件傳遞給客戶端

1600696471006

SSL

簡介

SSL 概述: ( Secure Socket Layer) 安全套接字層,通過一種機制在互聯網上提供密鑰傳輸。其主要目標是保證兩個應用間通信數據的保密性和可靠性, 可在服務器端和用戶端同時支持的一種加密算法。目前主流版本 SSLV2、 SSLV3( 常用)。

SSL傳輸過程

  1. 客戶端請求一個安全會話協商加密算法
  2. 服務端向客戶端發送證書
  3. 客戶端接受服務端的證書確認是否為自己想要訪問的網站
  4. 確認是客戶端訪問的網站 客戶端會使用CA證書的公鑰解密目標網站的證書 從而得到目標網站的公鑰
  5. 客戶端使用對稱加密算法生成一把秘鑰 然后使用目標網站的公鑰對秘鑰進行加密 傳遞給目標網站
  6. 目標網站使用私鑰解密客戶端傳遞的公鑰 從而得到對稱機密的秘鑰 通過該秘鑰進行數據安全傳輸

CA配置

安裝

# 安裝
[root@server ~]# yum -y install openssl

# 修改配置
[root@server ~]# vim /etc/pki/tls/openssl.cnf
	basicConstraints=CA:FALSE ---> basicConstraints=CA:TRUE

證書以及私鑰

# 查看幫助
[root@server ~]# /etc/pki/tls/misc/CA -h
	usage: /etc/pki/tls/misc/CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify
	newcert:新證書
	newreq:新請求
	newreq-nodes:新的請求節點
	newca:新的CA證書
	sign:簽證
	verify:驗證

# 生成CA證書
[root@server ~]# /etc/pki/tls/misc/CA -newca

# 查看公鑰證書
[root@server ~]# cat /etc/pki/CA/cacert.pem

# 查看證書私鑰
[root@server ~]# cat /etc/pki/CA/private/cakey.pem

在Apache搭建https

配置思路

  1. 生成請求文件發送給服務端
  2. 服務端接受請求文件使用私鑰加密生成證書文件
  3. 將證書文件傳遞給客戶端
  4. 客戶端接受證書文件與http進行結合

私鑰以及請求文件配置

# 安裝http
[root@client ~]# yum -y install httpd

# 生成證書請求私鑰 
# 由私鑰推測服務端的公鑰 但是不能由公鑰推測出私鑰
[root@client ~]# openssl genrsa -des3 -out /etc/httpd/conf.d/server.key	# 使用des3算法 將私鑰輸出到/etc/httpd/conf.d/server.key

# 查看私鑰
[root@client ~]# cat /etc/httpd/conf.d/server.key

# 使用私鑰生成請求文件
[root@client ~]# openssl req -new -key /etc/httpd/conf.d/server.key -out /server.csr

# 查看請求文件
[root@client ~]# cat /server.csr

# 將證書傳遞給服務端
[root@client ~]# scp /server.csr 10.1.1.1:/

# 服務端進行驗簽
[root@server ~]# openssl ca -keyfile /etc/pki/CA/private/cakey.pem -cert /etc/pki/CA/cacert.pem -in /tmp/server.csr -out /server.crt	# 使用生成的私鑰以及正式進行驗證簽名

# 將簽名證書傳遞給客戶端
[root@server ~]# scp /server.crt 10.1.1.2:/tmp

Apache聯動SSL

# 安裝ssl模塊
[root@client ~]# yum -y install mod_ssl

# 配置apache加載證書文件
[root@client ~]# cp /server.crt /etc/httpd/conf.d/	# 將證書復制到改目錄下

# 修改配置文件
[root@client ~]# vim /etc/httpd/conf.d/ssl.conf
	# 修改證書以及私鑰的路徑
	SSLCertificateFile /etc/pki/tls/certs/localhost.crt ---> SSLCertificateFile /etc/httpd/conf.d/server.crt
	
	SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ---> SSLCertificateKeyFile /etc/httpd/conf.d/server.key

# 重復服務
[root@client ~]# systemctl restart httpd

# 查看服務是否啟動
[root@client ~]# netstat -aunpt | grep httpd	

服務測試

[root@client ~]# vim /var/www/html/index.html
	Welcome to Apache over SSL

在Nginx搭建https

安裝nginx

# 創建yum源
[root@client ~]# vim /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/rhel/7/$basearch/
    gpgcheck=0
    enabled=1

# 安裝
[root@client ~]# yum -y install nginx

# 啟動
[root@client ~]# systemctl start nginx

修改配置文件

# 備份配置文件
[root@client ~]# cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak

# 添加虛擬主機

[root@client ~]# vim /etc/nginx/conf.d/default.conf
    server {
    listen       443 ssl;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;	# 版本
    ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;	# 加密方式
    ssl_certificate /etc/httpd/conf.d/server.crt;	#簽名
    ssl_certificate_key /etc/httpd/conf.d/server.key;	# 私鑰
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m
	}

# 檢測主機
[root@client ~]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

# 重啟nginx
[root@client html]# systemctl stop nginx

[root@client html]# nginx

[root@client html]# netstat -aunpt | grep nginx

測試

[root@client html]# echo "Welcome to Nginx over SSL" > /usr/share/nginx/html/index.html


免責聲明!

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



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