bash脚本数组定义声明以及引用2018-5-27

例:

arrt=(1 2 3 4 )

arrt1=(1,2,3,4)  ,为一个这

echo $arrt    #默认打印第一个下标的变量

1

echo ${arrt[2]}  打印第三个元素

3

echo ${arrt[-2]}  右边开始数的第二个元素

3

echo $arrt1  打印出所有的

1,2,3,4

普通数组,自定义索引位置

arrt2[1]=1

arrt2[2]=2

arrt2[3]=3

arrt2[4]=4

echo ${arrt2[*]}打印出所有的值 (也可用@)

1 2 3 4

echo ${#arr[2]}  打印下标变量长度

4

echo ${#arr[*]}   显示数组中的元素个数(只统计值不为空的元素)也可用@     

关联数组 :关联数组支持字符串作为数组索引,使用关联数组前必须先使用declare -A声明

declare -A   arrt3=([name1]=westfile [name2]=linkpark)

echo ${arrt3[name1]}

wesfile

echo ${arrt3[name2]}

linkpark

arrt3[name3]=2      #分开赋值

arrt3[name4]=coldplay

echo ${arrt3[*]}

westfile linkpark 2 coldplay

数组的截取和替换

arrt4=(1 2 3 4 5 6)

echo ${arrt4[*]:2:2 }  #截取第二个元素往后的2个元素

3 4

arrt41=${arrt4[*]:2:2}#截取并赋值

echo $arrt41         3 4

arrt42=${arrt4[*]/5/6}  数组中的5 替换为6

echo $arrt42      1 2 3 4 6 6

循环遍历数组

#!/bin/bash

arrt5=(one toe three four five)

for a in ${arrt5[*]};do

echo $a

done

one

toe

three

four

five

bash脚本信号捕捉

linux利用信号与系统的进程进行通信。

sleep 100

ctrl + c#暂停进程  运行期间暂停

sleep 100

Ctrl + z   在后台中暂停

ps 查看进程的状态信号

Openssl 的基本应用加密、解密

OpenSSL加密的三大方式:对称加密

    含义:指加密解密使用同一组密钥,是按数据分块以后进行加密的,前后数据块彼此之间有关联关系

     特性:加密算法严重依赖口令,加密算法很有可能是公开的,所有人都有可能知道这个算法;加密

本身不能仅依赖于算法,也依赖于可变化的口令来实现;加密方,解密方使用同一个口令相关算法:DES56bit)、3DESAES128bit)、BlowfishTwofishRc6CAST5 非对称加密

      含意:对消息的加密和解密使用不同的密钥,即用于加密、可以公开的公钥(public key),和用于解密、需要保密的私钥(private key)

       特性:非对称加密算法的保密性比较好,它消除了终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密相关算法:RSAEIGamalDSA 意向加密

        含义:是抽取数据特征码来验证数据的完整性特性:雪崩效应:输入数据的微小改变会导致结果的巨大变化;定长输出:无论输入数据多大,单向加密结果中的输出长度是相同的

Openssl是使用非常广泛的SSL 的开源实现,也是一种多命令行工具,它能够实现数据的加密、解密,还能当做CA来用,它能保证让你创建证书、吊销证书 openssl enc #enc进行加密

 CaOpenssl应用

在我们访问一些金融等安全性较高网站时,都不再是普通的http连接,而是https连接,这个s就代表这个通讯是加密的,这是就需要CA机构来颁布数字证书来验证WEB服务器的正确性。这个数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有公钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证

bash脚本数组定义声明以及引用2018-5-27_第1张图片

练习https的实现

systemctl stop firewalld 关闭防火墙

setenforce 0 关闭selinux

1、CA服务器创建私有CA证书并颁发:

rpm -qa openssl && yum install openssl   查找openssl并安装openssl

cd /etc/pki/CA/

umask 077;openssl genrsa -out private/cakey.pem 4096 #使用rsa算法生成一个4096位的密钥

2、自签证书

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

#req生成证书签署请求 news新请求 x509专门用于生成自签署证书,days有效天数

3、初始化环境(只有第一次创建CA时才执行此步骤)

cd /etc/pki/CA/

touch index.txt

echo 00 >> serial   指定序列号从哪个数字开始

4、web节点申请证书,为私钥请求证书创建单独的目录便于存放

mkdir -p /etc/httpd/conf.d/ssl

cd /etc/httpd/conf.d/ssl

umask 077;openssl genrsa  -out httpd.key 4096

5、生成证书签署请求

cd /etc/httpd/conf.d/ssl

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

6、将签署的请求文件发送给CA服务器

cp /etc/httpd/conf.d/ssl/httpd.csr /etc//pki/CA

7、CA签署证书(/etc/pki/CA/)

openssl ca -in httpd.csr -out httpd.crt -days 365

8、将签署好的证书发送回给(/etc/pki/CA)

cp httpd.crt /etc/httpd/conf.d/ssl/

cp cacert.pem /etc/httpd/conf.d/ssl/

9、web节点配置httpd支持使用ssl及使用证书

yum install httpd mod_ssl -y

vim /etc/httpd/conf.d/ssl.conf 修改ssl

SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt

SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key

SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem

在文件最后面添加:

DocumentRoot “/var/www/html”

ServerName gt.com :443

  AllowOverride All

  Option None

  require all granted

systemctl restart httpd 重新启动httpd服务

10、将/etc/pki/CA/ 下的文件cacert.pem 拷贝至客户端

进行证书安装(将文件后缀名改为crt)选择受信任的颁发机构

安装好后在客户端访问https://ip地址

但是一般情况是访问域名所以首先在客户端找到C/windos/system32/drivers/etc/hosts将其移至桌面并在最后一行添加

IP 域名然后保存至原文目录中然后访问https://域名

显示证书正确没有问题即可






你可能感兴趣的:(课内笔记)