openssh及基于ssl的https的配置

openssh的简介     

       OpenSSH 是 SSH 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。

而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使

用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的

数据,并由此来代替原来的类似服务。


Openssh的工作原理

  • 认证远程主机:
               服务器用私钥加密一段数据传给客户端,客户端用服务器的公钥来解密,如果能解开,完成认证
  • 协商加密算法,密钥交换
                认证完成后,客户端和服务器端开始协商加密算法,查看是否有两者都支持的算法,并作确认

                客户端使用一种会话密钥,然后用服务器端的公钥进行加密,服务器端得到后用自己的私钥解

                密可以得到会话密钥,然后双方完成密钥交换

  • 服务器发送登陆提示符

                服务器端发出登陆提示,提醒用户登录,不过现在的Openssh一般是服务器端保存客户端的公

                钥,保存的公钥是不能公开的,下次用户登陆的时候服务器用用户的公钥加密一段数据发送给

                客户端,查看客户端是否能够进行解密,如果能,则身份认证完成

openssh的验证机制是通过CA来实现的,CA是互联网上的第三方具有公信力的机构,负责签发CA证书,通常

一个CA证书包括以下的几部分:

版本号

序列号

签名算法

发行者名称

有效期限

主题名称

主体公钥(主要的信息)

发行者的唯一标识

主体的唯一标识

扩展

发行者的签名(最重要)

自建CA实现实现https

配置httpd支持https

(1)为服务器申请数字证书

     测试:通过私建CA发证书

               创建私有CA

               在服务器创建证书签署请求

               CA签证

(2)配置httpd支持使用ssl,及使用的证书

 yum  mod_ssl

 

配置文件:/etc/httpd/conf.d/ssl.conf

DocumentRoot

Servername

SSLCertificateFile

SSLCertificateKeyFile

(3)测试基于https访问相应的主机

# openssl s_client 

私有CA的创建

cd /etc/pki/CA

(umask 077;openssl genrsa -out private/cakey.pem 2048)

ll private/

touch  index.txt

echo 01 > serial 

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300

CN    Beijing    Beijing     MageEdu Ltd    Ops ca.magedu.com   caadmin@magedu.com

CA目录下面

openssl ca -in /tmp/httpd.csr -out certs/web1.magedu.com.crt -days 365

ls newcerts/  有无01.pem

ls certs/     有无web.magedu.com.crt     将来实际中应该设置证书生成库

scp certs/web1.magedu.com.crt  root@172.16.100.6:/etc/httpd/ssl/

服务器端

cd /etc/httpd 

ls

(umask 077;openssl genrsa -out httpd.key 1024)

openssl req -new  -key httpd.key -out httpd.csr -days 365

CN    Beijing    Beijing     MageEdu Ltd    Ops   web1.magedu.com(现实中为www服务器)   caadmin@magedu.com

scp   httpd.csr  root@172.16.100.9:/tmp/

ssl目录下面

ll   查看是否有刚才的证书

(2)修改配置文件,启用https服务

httpd -M | grep ssl    查看是否有ssl模块

Syntax  OK  代表没有

yum install mod_ssl -y 

rpm -ql mod_ssl 

cd   /etc/httpd/conf.d/

cp ssl.conf{,.bak}

vim ssl.conf 

<VirtualHost *:443>

SSLCertificateFile /etc/httpd/ssl/web1.magedu.com.crt  服务器给人发的,客户端用来验证

SSLCertificateKeyFile  /etc/httpd/ssl/httpd.key   与证书文件对应的私钥

DoucmentRoot “/vhosts/web1/htdocs”   80端口和443端口共用一个目录

ServiceName web1.magedu.com   主机名

httpd -t  检查语法

service httpd restart

ss -tnl  查看当前端口的信息

(3)测试

服务端上自己测试自己

openssl s_client -connect 172.16.100.6.443 -CAfile  /etc/pki/CA/cacert.pem

GET /  HTTP/1.1

Host:web1.magedu.com

利用浏览器访问

/etc/pki/CA/cacert.pem  复制一份到windows 

将CA证书改名 cacert.crt

双击安装

windows\system32\drivers\hosts

修改主机名为 web1.magedu.com

再次使用浏览器访问

原创文章,作者:Double f,如若转载,请注明出处:http://www.178linux.com/77134

(2)
Double fDouble f
上一篇 2017-05-30
下一篇 2017-05-30

相关推荐

  • Linux中的shell脚本编程——基础篇

    概述:       shell脚本在Linux系统管理员的运维工作中非常重要。shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求。本篇将从编程基础、脚本基本格式、变量、运算、条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容。 一、…

    Linux干货 2016-08-15
  • ansible基础应用

    ansible基础 一、运维主要工作 ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansible特性 (1)模块化:调用特定的模块,完成特定任务; (2)基于python语言实现,由paramiko,PYYAML和JINJa2三个关键模块组成 (3)部署简单:agentless…

    Linux干货 2017-01-04
  • httpd 基础

      http(1) 开启httpd服务,注意selinux 和防火墙设置。出现错误查看系统日志和http错误日志。 进程间通信:IPC socket:套接字 IP:PORT Client <–> Server     Server: listen  &nb…

    Linux干货 2016-11-01
  • 2016年8月11号学习博客

    shell脚本编程 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件 命令查询过程:别名–>内部变量–>hash–>$PATH ~]#bash -n 检测脚本语法错误 ~]#bash -x 顺…

    Linux干货 2016-08-15
  • Tomcat安装及简单配置

    安装jdk: [root@stu ~]# rpm -ivh jdk-7u9-linux-x64.rpm #此为安装官方的版本(c6已经使用了openjdk)报错不用关心 查看安装位置: [root@stu ~]# rpm -ql jdk 目录: [root@stu&nb…

    Linux干货 2016-07-19