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   [email protected]

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  [email protected]:/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服务器)   [email protected]

scp   httpd.csr  [email protected]:/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 14:05
下一篇 2017-05-30 14:50

相关推荐

  • 系统基础之权限管理

    权限管理: 概论:  上节,为大家介绍了用户,和组的知识.今天为大家介绍与用户,组息息相关的知识,权限.linux是多用户,多任务的操作系统,面对多人的操作,安全问题就很重要,权限机制就很好的对安全进行防护,避免他人操作自己的文件.下面给大家详细介绍权限.   首先让我们先直观地看下权限,对权限有个最基本的认识.以/etc/issue文件…

    Linux干货 2016-08-04
  • 循环结构

    循环结构 循环执行:     讲一段代码重复执行一次或多次          进入条件:条件满足时进入循环     退出条件:每一个循环都应该有退出条件,以有机会退出循环;   &…

    Linux干货 2016-08-21
  • Linux文件管理相关及命令别名、执行状态等

    Linux文件管理相关命令有:cp,mv,rm         文件查看类命令有:cat,tac,head,tail,more,less         接下来,逐个介绍:   &…

    Linux干货 2016-11-04
  • MariaDB基础

    MariaDB基础 关系型数据库的基础概念: 1)数据类型:作用:存储格式、数据范围、所能参与的运算、排序方式         字符型:         定长字符型:CHAR(#),BIARNY(#)…

    Linux干货 2016-11-07
  • 更改CentOS7 默认网卡eno16777736为eth0

        安装完CentOS7,它的默认网卡名为eno16777736 看着不爽!习惯了eth0的命名方式。 编辑 /etc/sysconfig/grub 在“GRUB_CMDLINE_LINUX”里添加net.ifnames=0 biosdevname=0 保存退出 如图: 然后执行 grub2-mkconfig -o…

    系统运维 2015-12-19
  • Linux syslog 系统日志管理

    Linux系统上面,系统可以记录从开机到当前系统上面何时发生了哪些事情,在centos 上表现为rsylog,由三部分组成 1)syslogd:主要记录系统和网络等服务的日志信息 2)klogd:主要记录内核产生的各项信息 3)logretate:主要用来对日志文件进行切割循环记录等 特点: 1)多线程工作 2)支持以TCP,UDP,SSL,TSL,RELP…

    Linux干货 2016-10-24