Web服务器配置Https

Web服务器配置Https

一Openssl是什么?

OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

SSL是Secure Socket
Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已成为Internet上保密通讯的工业标准。安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以上叙述,SSL协议提供的安全信道有以下三个特性:
1、数据的保密性
信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。
2、数据的完整性
加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。
3、安全验证
加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。

3.查看openssl以及默认openssl.cnf存放位置

openssl version -a output: OpenSSL 1.1.1c 28 May 2019 built on: Tue
Aug 20 11:46:33 2019 UTC platform: debian-amd64 options: bn(64,64)
rc4(16x,int) des(int) blowfish(ptr) compiler: gcc -fPIC -pthread -m64
-Wa,–noexecstack -Wall -Wa,–noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-D7S1fy/openssl-1.1.1c=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 OPENSSLDIR: “/usr/lib/ssl” ENGINESDIR: “/usr/lib/x86_64-linux-gnu/engines-1.1” Seeding source: os-specific

看到默认位置为OPENSSLDIR: “/usr/lib/ssl” 所以配置文件在本目录下

4.查看配置文件 vim /usr/lib/ssl/openssl.cnf

[ CA_default ]

dir             = ./demoCA              # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt        # database index file.
#unique_subject = no                    # Set to 'no' to allow creation of
                                        # several certs with same subject.
new_certs_dir   = $dir/newcerts         # default place for new certs.

certificate     = $dir/cacert.pem       # The CA certificate
serial          = $dir/serial           # The current serial number
crlnumber       = $dir/crlnumber        # the current crl number
                                        # must be commented out to leave a V1 CRL
crl             = $dir/crl.pem          # The current CRL
private_key     = $dir/private/cakey.pem# The private key

x509_extensions = usr_cert  

5…创建为根证书CA所需的目录及文件,根据配置文件创建demoCA文件夹,以及各种文件

sudo mkdir /usr/lib/ssl/demoCA
cd /usr/lib/ssl/demoCA

mkdir -pv {certs,crl,newcerts,private}
touch {serial,index.txt}

6.指明证书的开始编号

echo 01 >> serial

7.生成根证书的私钥(注意:私钥的文件名与存放位置要与配置文件中的设置相匹配),在配置文件中存放路径是相对路径,需要修改路径为 /usr/llib/ssh/demoCA

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

参数说明:

genrsa --产生rsa密钥命令

-aes256–使用AES算法(256位密钥)对产生的私钥加密,这里没有此参数,则只是用了rsa算法加密。

-out —输出路径,这里指private/ca.key.pem

这里的参数2048,指的是密钥的长度位数,默认长度为512位

8.生成自签证书,即根证书CA,自签证书的存放位置也要与配置文件中的设置相匹配,生成证书时需要填写相应的信息。注意Common Name 填写 localhost

openssl req -new -x509 -key /usr/lib/ssl/demoCA/private/cakey.pem -out cacert.pem -days 365

参数说明:

参数说明:

-new:表示生成一个新证书签署请求

-x509:专用于CA生成自签证书,如果不是自签证书则不需要此项

-key:用到的私钥文件

-out:证书的保存路径

-days:证书的有效期限,单位是day(天),默认是openssl.cnf的default_days ls /usr/lib/ssl/demoCA

cacert.pem
由上看到cacert.pem CA根证书生成

9.配置服务器证书ssl

mkdir /usr/local/apache2/ssl
cd   /usr/local/apache2/ssl

①生成apache.key

(umask 077; openssl genrsa -out nginx.key 2048)

②生成证书签署请求

需要根据提示填写对应信息,但是必须和根证书的CA相同,唯一不同的是Common Name 为你的域名如(localhost)

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

③在根证书服务器上颁发证书

#我们创建一个req文件夹来接受服务器发送过来的文件(签署请求的csr文件、key文件等)
sudo mkdir /usr/lib/ssl/demoCA/req
#颁发证书,先把csr,key文件拷贝到req目录然后

sudo openssl ca -in /usr/lib/ssl/demoCA/req/apache.csr -out /usr/lib/ssl/demoCA/certs/apache.crt -days 365

二 服务器配置
cd /usr/local/apache2/conf
vi httpd.conf
在这里插入图片描述
cd extra
vi http_ssl.conf
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值