搭建安全的Web服务器
2016-10-08 00:13
246 查看
三台Linux服务器:
web服务器:192.168.1.10
CA服务器: 192.168.1.20
客户机
web网站把公钥发给CA认证服务器,CA用私钥给web公钥签名。然后把签名完的公钥在发给web服务器
一般 .Key结尾的是私钥
.Csr结尾的是公钥
.Crt结尾的是CA签名完的公钥证书
[root@localhost private]# gpg --gen-key
注意:RSA密钥长度为 1024-4096 (默认为2048)
一、WEB服务器生成密钥对
1、生成私钥
#cd /etc/pki/tls/private
#openssl genrsa 2048 > www.key //生成私钥文件
2、根据私钥生成证书请求文件(CA服务搭建需事先做好)
CA服务器请参考:http://blog.51cto.com/user_index.php?action=addblog_new&did=276127
提示的问题中,国家/组织与根证书保持一致(根证书位置:/etc/pki/tls/openssl.cnf)
#openssl req -new -key www.key > ~/www.csr//用私钥生成公钥
CountryName (2 letter code) [XX]:CN //写CA服务器住配置文件里填写的“国家” CN=中国
Stateor Province Name (full name) []:Beijing //写CA服务器住配置文件里填写的“省/市”
LocalityName (eg, city) [Default City]:Beijing //写CA服务器住配置文件里填写的“省”
OrganizationName (eg, company) [Default Company Ltd]:Dave Company Ltd //写CA服务器住配置文件里填写的“公司名”
OrganizationalUnit Name (eg, section) []: //部门名称,可回车
CommonName (eg, your name or your server's hostname) []:www.dave.com //写web服务器域名
EmailAddress []:youyang@qq.com //写维护人员的邮箱
Pleaseenter the following 'extra' attributes
to besent with your certificate request
Achallenge password []: 回车
Anoptional company name []: 回车
[root@localhostprivate]#
二、把CSR文件上传至CA服务器
1、把web服务器生成的公钥发给CA服务器 ,位置随便
[root@localhost ~]# scp www.csr root@192.168.1.20:/root/ //上传到CA服务器
2、在CA服务器的/root目录下查看csr文件内容
# openssl req -in www.csr -text -noout
三、CA服务器签发证书(CA服务搭建需事先做好)
1、签发证书
# openssl ca -in www.csr -out www.crt //CA服务器给web公钥签名,生成www.crt 公钥认证 文件名字随便起以.crt结尾
Usingconfiguration from /etc/pki/tls/openssl.cnf
Enterpass phrase for /etc/pki/CA/private/s.key: //此处要输入CA服务器的私钥密码(123456),写配置CA服务器创建私钥s.key的密码 ---用CA服务器的私钥s.key给web服务器公钥签名,生成www.crt
Checkthat the request matches the signature
Signatureok
CertificateDetails:
Serial Number: 8 (0x8)
Validity
Not Before: Mar 20 23:54:19 2014GMT
Not After : Mar 20 23:54:19 2015GMT
Subject:
countryName = CN
stateOrProvinceName = Beijing
organizationName = Dave Company Ltd
commonName = www.dave.com
emailAddress = youyang@qq.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
23:06:C0:53:BB:7D:75:11:F1:6D:BF:30:2E:0B:13:79:26:E8:49:E9
X509v3 Authority Key Identifier:
keyid:0B:97:E6:9D:83:31:38:A1:14:62:AC:29:4C:DE:6A:01:55:15:33:4C
Certificateis to be certified until Mar 20 23:54:19 2015 GMT (365 days)
Sign thecertificate? [y/n]:y //确定以上内容是否正确
1 out of1 certificate requests certified, commit? [y/n]y //确定以上内容是否正确
Writeout database with 1 new entries
DataBase Updated
2、验证
# cat /etc/pki/CA/index.txt
# cat /etc/pki/CA/serial
# ls /etc/pki/CA/newcerts
# openssl x509 -in ~/www.crt -text -noout //查看crt文件内容
四、WEB服务器下载证书并且布署
1、CA服务器签名完生成的www.crt公钥认证,再发给web服务器
[root@CA~]# scp www.crt 192.168.1.10:/root/
2、将CA发过来的证书拷贝到/etc/pki/tls/certs
[root@web~]# cp www.crt /etc/pki/tls/certs/
3、在web服务器上安装mod_ssl模块
# rpm -qa |grep mod_ssl
# yum -y install mod_ssl //安装mod_ssl模块,默认在/etc/httpd/conf.d/ssl.conf下生 成ssl主配置文件,生成套接层,https默认监听TCP443端口
4、编辑配置文件
# vim /etc/httpd/conf.d/ssl.conf
105 SSLCertificateFile /etc/pki/tls/certs/www.crt //填写公钥认证的路径
112 SSLCertificateKeyFile /etc/pki/tls/private/www.key //填写私钥的路径
5、重启web服务器
# service httpd restart
6、当访问http协议时,自动跳转到https
在/etc/httpd/conf.d/ssl.conf中加入如下三行,使客户端访问http80端口自动跳转到https 443端 口,注意这三行必须写在所有容器外,就是放在配置文件最后
vi /etc/httpd/conf.d/ssl.conf
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
五、测试
linux客户端访问
1、客户端必须写hosts文件或DNS解析
vi /etc/hosts
192.168.1.10 www.dave.com
2、客户端浏览器访问:http://www.dave.com // 提示证书不受信任,因为客户端没有信任CA
![](http://s2.51cto.com/wyfs02/M00/88/6E/wKioL1f3xx7BAcAIAACBd8lhguI310.png)
3、客户端将CA的根证书安装上,再次访问就不会再有提示了
http://192.168.1.20/my-ca.crt //从CA服务器下载根证书
![](http://s4.51cto.com/wyfs02/M01/88/6E/wKioL1f3x7rRpSoWAABEi32PRO0047.png-wh_500x0-wm_3-wmp_4-s_1970046363.png)
若没有自动弹出“下载证书”窗口,就按如下操作
![](http://s5.51cto.com/wyfs02/M01/88/72/wKiom1f3x-ywv1lvAAAtVp5bW7U086.png)
![](http://s3.51cto.com/wyfs02/M01/88/6E/wKioL1f3yAmxQaQFAAC_guBnyIY900.png-wh_500x0-wm_3-wmp_4-s_1891895297.png)
查看证书
![](http://s1.51cto.com/wyfs02/M02/88/72/wKiom1f3yC7C3BbXAAFNafGTkZs477.png-wh_500x0-wm_3-wmp_4-s_4212993433.png)
win7客户端访问
1、打开C:\Windows\System32\drivers\etc\hosts,在未尾添加:192.168.1.10 www.dave.com
2、未下载证书,访问http://www.tarena.com ,显示如下
![](http://s1.51cto.com/wyfs02/M00/88/6E/wKioL1f3yQLjJaKsAABcqFpNbCs258.png-wh_500x0-wm_3-wmp_4-s_545977310.png)
下载证书:http://192.168.1.20/my-ca.crt
运行→ 安装→
![](http://s4.51cto.com/wyfs02/M00/88/6E/wKioL1f3yTyxfnHeAABpXUVq_24843.png-wh_500x0-wm_3-wmp_4-s_3683852184.png)
再访问:http://www.tarena.com →可以直接显示网页内容
到此就部署完了!
web服务器:192.168.1.10
CA服务器: 192.168.1.20
客户机
web网站把公钥发给CA认证服务器,CA用私钥给web公钥签名。然后把签名完的公钥在发给web服务器
一般 .Key结尾的是私钥
.Csr结尾的是公钥
.Crt结尾的是CA签名完的公钥证书
[root@localhost private]# gpg --gen-key
注意:RSA密钥长度为 1024-4096 (默认为2048)
一、WEB服务器生成密钥对
1、生成私钥
#cd /etc/pki/tls/private
#openssl genrsa 2048 > www.key //生成私钥文件
2、根据私钥生成证书请求文件(CA服务搭建需事先做好)
CA服务器请参考:http://blog.51cto.com/user_index.php?action=addblog_new&did=276127
提示的问题中,国家/组织与根证书保持一致(根证书位置:/etc/pki/tls/openssl.cnf)
#openssl req -new -key www.key > ~/www.csr//用私钥生成公钥
CountryName (2 letter code) [XX]:CN //写CA服务器住配置文件里填写的“国家” CN=中国
Stateor Province Name (full name) []:Beijing //写CA服务器住配置文件里填写的“省/市”
LocalityName (eg, city) [Default City]:Beijing //写CA服务器住配置文件里填写的“省”
OrganizationName (eg, company) [Default Company Ltd]:Dave Company Ltd //写CA服务器住配置文件里填写的“公司名”
OrganizationalUnit Name (eg, section) []: //部门名称,可回车
CommonName (eg, your name or your server's hostname) []:www.dave.com //写web服务器域名
EmailAddress []:youyang@qq.com //写维护人员的邮箱
Pleaseenter the following 'extra' attributes
to besent with your certificate request
Achallenge password []: 回车
Anoptional company name []: 回车
[root@localhostprivate]#
二、把CSR文件上传至CA服务器
1、把web服务器生成的公钥发给CA服务器 ,位置随便
[root@localhost ~]# scp www.csr root@192.168.1.20:/root/ //上传到CA服务器
2、在CA服务器的/root目录下查看csr文件内容
# openssl req -in www.csr -text -noout
三、CA服务器签发证书(CA服务搭建需事先做好)
1、签发证书
# openssl ca -in www.csr -out www.crt //CA服务器给web公钥签名,生成www.crt 公钥认证 文件名字随便起以.crt结尾
Usingconfiguration from /etc/pki/tls/openssl.cnf
Enterpass phrase for /etc/pki/CA/private/s.key: //此处要输入CA服务器的私钥密码(123456),写配置CA服务器创建私钥s.key的密码 ---用CA服务器的私钥s.key给web服务器公钥签名,生成www.crt
Checkthat the request matches the signature
Signatureok
CertificateDetails:
Serial Number: 8 (0x8)
Validity
Not Before: Mar 20 23:54:19 2014GMT
Not After : Mar 20 23:54:19 2015GMT
Subject:
countryName = CN
stateOrProvinceName = Beijing
organizationName = Dave Company Ltd
commonName = www.dave.com
emailAddress = youyang@qq.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
23:06:C0:53:BB:7D:75:11:F1:6D:BF:30:2E:0B:13:79:26:E8:49:E9
X509v3 Authority Key Identifier:
keyid:0B:97:E6:9D:83:31:38:A1:14:62:AC:29:4C:DE:6A:01:55:15:33:4C
Certificateis to be certified until Mar 20 23:54:19 2015 GMT (365 days)
Sign thecertificate? [y/n]:y //确定以上内容是否正确
1 out of1 certificate requests certified, commit? [y/n]y //确定以上内容是否正确
Writeout database with 1 new entries
DataBase Updated
2、验证
# cat /etc/pki/CA/index.txt
# cat /etc/pki/CA/serial
# ls /etc/pki/CA/newcerts
# openssl x509 -in ~/www.crt -text -noout //查看crt文件内容
四、WEB服务器下载证书并且布署
1、CA服务器签名完生成的www.crt公钥认证,再发给web服务器
[root@CA~]# scp www.crt 192.168.1.10:/root/
2、将CA发过来的证书拷贝到/etc/pki/tls/certs
[root@web~]# cp www.crt /etc/pki/tls/certs/
3、在web服务器上安装mod_ssl模块
# rpm -qa |grep mod_ssl
# yum -y install mod_ssl //安装mod_ssl模块,默认在/etc/httpd/conf.d/ssl.conf下生 成ssl主配置文件,生成套接层,https默认监听TCP443端口
4、编辑配置文件
# vim /etc/httpd/conf.d/ssl.conf
105 SSLCertificateFile /etc/pki/tls/certs/www.crt //填写公钥认证的路径
112 SSLCertificateKeyFile /etc/pki/tls/private/www.key //填写私钥的路径
5、重启web服务器
# service httpd restart
6、当访问http协议时,自动跳转到https
在/etc/httpd/conf.d/ssl.conf中加入如下三行,使客户端访问http80端口自动跳转到https 443端 口,注意这三行必须写在所有容器外,就是放在配置文件最后
vi /etc/httpd/conf.d/ssl.conf
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
五、测试
linux客户端访问
1、客户端必须写hosts文件或DNS解析
vi /etc/hosts
192.168.1.10 www.dave.com
2、客户端浏览器访问:http://www.dave.com // 提示证书不受信任,因为客户端没有信任CA
![](http://s2.51cto.com/wyfs02/M00/88/6E/wKioL1f3xx7BAcAIAACBd8lhguI310.png)
3、客户端将CA的根证书安装上,再次访问就不会再有提示了
http://192.168.1.20/my-ca.crt //从CA服务器下载根证书
![](http://s4.51cto.com/wyfs02/M01/88/6E/wKioL1f3x7rRpSoWAABEi32PRO0047.png-wh_500x0-wm_3-wmp_4-s_1970046363.png)
若没有自动弹出“下载证书”窗口,就按如下操作
![](http://s5.51cto.com/wyfs02/M01/88/72/wKiom1f3x-ywv1lvAAAtVp5bW7U086.png)
![](http://s3.51cto.com/wyfs02/M01/88/6E/wKioL1f3yAmxQaQFAAC_guBnyIY900.png-wh_500x0-wm_3-wmp_4-s_1891895297.png)
查看证书
![](http://s1.51cto.com/wyfs02/M02/88/72/wKiom1f3yC7C3BbXAAFNafGTkZs477.png-wh_500x0-wm_3-wmp_4-s_4212993433.png)
win7客户端访问
1、打开C:\Windows\System32\drivers\etc\hosts,在未尾添加:192.168.1.10 www.dave.com
2、未下载证书,访问http://www.tarena.com ,显示如下
![](http://s1.51cto.com/wyfs02/M00/88/6E/wKioL1f3yQLjJaKsAABcqFpNbCs258.png-wh_500x0-wm_3-wmp_4-s_545977310.png)
下载证书:http://192.168.1.20/my-ca.crt
运行→ 安装→
![](http://s4.51cto.com/wyfs02/M00/88/6E/wKioL1f3yTyxfnHeAABpXUVq_24843.png-wh_500x0-wm_3-wmp_4-s_3683852184.png)
再访问:http://www.tarena.com →可以直接显示网页内容
到此就部署完了!
相关文章推荐
- Postfix + Openssl + Dovecot + Squirrelmail 搭建安全WEB邮箱服务器
- Web服务器的搭建和站点安全的实现
- web服务器的搭建以及站点安全
- Web服务器搭建与安全
- Nginx学习-2 使用Nginx搭建HTML web服务器 实现SSL证书安全访问
- CA数字证书服务的配置、搭建安全的WEB服务器、安全的邮件服务器
- 利用https安全访问web的服务器搭建
- 如何搭建安全的WEB服务器
- Ubuntu Server 14.04 安装+安全Web服务器(linux+apache+mysql+php)搭建流程(更新)
- 关于Windows 2008 R2 Web服务器环境搭建、安全流程
- 关于Windows 2008 R2 Web服务器环境搭建、安全流程
- 搭建web服务器的SElinux策略保护 SElinux修改默认端口 安全web服务
- Ubuntu Server安全Web服务器搭建流程
- FreeBSD下构建安全的Web服务器(一)
- 用Windows Server 2003搭建安全文件服务器 (转)
- FreeBSD下构建安全的Web服务器
- 使用 SSL 确保 Web 服务器通信安全
- 手把手教你搭建本地多功能WEB服务器
- 在Linux上搭建WEB服务器:基本概念、PHP zt