https 配置自建ca

  1. https 配置

http over ssl = https 443/tcp

ssl: v3

tls: v1

https://

  1. SSL会话的简化过程
    1. 客户端发送可供选择的加密方式,并向服务器请求证书;
    2. 服务器端发送证书以及选定的加密方式给客户端;
    3.     客户端取得证书并进行证书验正:

如果信任给其发证书的CA:

  1. 验正证书来源的合法性;用CA的公钥解密证书上数字签名;
  2. 验正证书的内容的合法性:完整性验正
  3. 检查证书的有效期限;
  4. 检查证书是否被吊销;
  5. 证书中拥有者的名字,与访问的目标主机要一致;
  1. 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换;
  2. 服务用此密钥加密用户请求的资源,响应给客户端;

注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机;

回顾几个术语:PKI,CA,CRL,X.509 (v1, v2, v3)

  1. 配置httpd支持https:
    1. 为服务器申请数字证书;

测试:通过私建CA发证书

  1. 创建私有CA
  • 查看配置文件

[root@repo conf]# cat /etc/pki/tls/openssl.cnf | sed ‘/^\[[[:space:]]CA_default/,/# Comment out/p’ –n

  • 创建序列号

[root@repo CA]# touch index.txt

[root@repo CA]# echo 01 > serial

[root@repo CA]# ls

certs crl index.txt newcerts private serial

[root@repo CA]# cat serial

01

  • 创建ca证书

[root@repo CA]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

[root@repo CA]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3560 -out /etc/pki/CA/cacert.pem

  1. 在服务器创建证书签署请求
  • 创建服务器私钥

[root@mx2 ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/ns2.cpe.com.key 2048)

  • 生成服务器签署请求

[root@mx2 ssl]# openssl req -new -key ns2.cpe.com.key -days 365 -out ns2.cpe.com.csr

  • 上传到ca服务器

[root@mx2 ssl]# scp ns2.cpe.com.csr root@172.16.31.125:/etc/pki/CA/certs/ns2.cpe.com.csr

  1. CA签证

[root@repo certs]# openssl ca -in ns2.cpe.com.csr -out /etc/pki/CA/certs/ns2.cpe.crt

[root@repo certs]# scp ns2.cpe.crt root@172.16.31.124:/etc/httpd/ssl/ns2.cpe.crt

ns2.cpe.crt

  1. 配置httpd支持使用ssl,及使用的证书;
  • 查看mod_ssl是否安装

[root@mx2 conf.d]# httpd -M | grep “ssl”

  • 安装mod_ssl
  • [root@mx2 ssl]# yum -y install mod_ssl
  • 配置ssl.conf

[root@mx2 conf.d]# vim ssl.conf

[root@mx2 conf.d]# cat ssl.conf | sed ‘/^#/d’ | sed ‘/^$/d’

Listen 443 https

SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog

SSLSessionCache shmcb:/run/httpd/sslcache(512000)

SSLSessionCacheTimeout 300

SSLRandomSeed startup file:/dev/urandom 256

SSLRandomSeed connect builtin

SSLCryptoDevice builtin

<VirtualHost 172.16.31.124:443>

DocumentRoot “/var/www/html”

ServerName ns2.cpe.com:443

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCertificateFile /etc/httpd/ssl/ns2.cpe.crt

SSLCertificateKeyFile /etc/httpd/ssl/ns2.cpe.com.key

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>

SSLOptions +StdEnvVars

</Files>

<Directory “/var/www/cgi-bin”>

SSLOptions +StdEnvVars

</Directory>

BrowserMatch “MSIE [2-5]” \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

  • 重启并查看mod_ssl是否成功加载

[root@mx2 conf.d]# systemctl restart httpd

[root@mx2 conf.d]# httpd -M | grep “ssl”

ssl_module (shared)

  • 客户端安装ca证书

# yum -y install mod_ssl

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

DocumentRoot

ServerName

SSLCertificateFile

SSLCertificateKeyFile

  1. 测试基于https访问相应的主机;

浏览器浏览:

# openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]

[root@repo CA]# openssl s_client -connect 172.16.31.124:443 -CAfile /etc/pki/CA/cacert.pem

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值