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配置#

安装#

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

证书以及私钥#

Copy
# 查看帮助 [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进行结合

私钥以及请求文件配置#

Copy
# 安装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#

Copy
# 安装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

服务测试#

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

在Nginx搭建https#

安装nginx#

Copy
# 创建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

修改配置文件#

Copy
# 备份配置文件 [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

测试#

Copy
[root@client html]# echo "Welcome to Nginx over SSL" > /usr/share/nginx/html/index.html
posted @   SR丶  阅读(1376)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
CONTENTS