1.构建HTTPS安全网站
问题
本案例基于上一章的CA服务器,要求为Web服务器提供加密通信支持,主要完成以下任务操作:
1)使用openssl为网站服务器创建CSR证书签发申请
2)将CSR申请提交给CA服务器签署,下载签发好的数字证书文件
3)配置实现强制跳转的HTTPS网站服务
方案
采用两台RHEL6虚拟机,其中svr5作为CA服务器,而www作为测试用的网站服务器。另外准备一台pc120作为访问网站的Windows测试机,如图-1所示。

步骤
实现此案例需要按照如下步骤进行。
步骤一:使用openssl为网站服务器创建CSR证书签发申请
1) 在www服务器上,先使用openssl创建私钥文件
由于此例中的私钥主要用于Web自动加密通信,为了方便起见,可以不设置私钥口令,否则在启动httpd服务时需要验证私钥口令。
[root@www ~]# cd /etc/pki/tls/private/ pc
[root@www private]# openssl genrsa 2048 > www.key //建立无口令保护的私钥文件
Generating RSA private key, 2048 bit long modulus
…+++
…+++
e is 65537 (0x10001)
[root@www private]# chmod 600 www.key
2)基于新建的密钥信息创建CSR证书签发请求
注意根据提示设置的国家、省、市、组织信息要与CA根证书的设置保持一致。
[root@www private]# \

openssl req -new -key www.key > ~/www.csr //建立CSR证书请求文件
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.


Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:Tarena Technology Ltd
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:www.tarena.com
Email Address []:webmaster@tarena.com

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@www private]#
步骤二:将CSR申请提交给CA服务器签署,下载签发好的数字证书文件
1) 在CA服务器svr5上,获得www服务器的CSR证书签发请求
可以采用SCP等方式拷贝过来,正式签发之前,可以先确认证书请求的信息内容。
[root@svr5 ~]# scp 192.168.4.120:/root/www.csr ./
root@192.168.4.120’s password:
www.csr 100% 1058 1.0KB/s 00:00
[root@svr5 ~]# openssl req -in www.csr -noout –text //查看证书请求
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=CN, ST=Beijing, L=Beijing, O=Tarena Technology Ltd, CN=www.tarena.com/emailAddress=webmaster@tarena.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
… …
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
… …
2)在CA服务器svr5上,签署并发布证书文件
正式签署www服务器的CSR请求,生成证书文件。然后将证书文件发放给www服务器,此例中仍通过httpd服务提供下载。
[root@svr5 ~]# cd /etc/pki/CA/certs/
[root@svr5 certs]# openssl ca -in ~/www.csr > www.crt //签署证书
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/my-ca.key: //验证私钥口令
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 6 (0x6)
Validity
Not Before: Aug 19 06:48:14 2013 GMT
Not After : Aug 19 06:48:14 2014 GMT
Subject:
countryName = CN
stateOrProvinceName = Beijing
organizationName = Tarena Technology Ltd
commonName = www.tarena.com
emailAddress = webmaster@tarena.com
… …
Certificate is to be certified until Aug 19 06:48:14 2014 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@svr5 certs]# cp www.crt /var/www/html/certs/ //复制到Web下载目录
3)在www服务器上,下载CA服务器签发好的证书文件
[root@www private]# cd /etc/pki/tls/certs/
[root@www certs]# wget http://192.168.4.5/certs/www.crt
… …
2015-05-17 14:55:59 (270 MB/s) - 已保存 “www.crt” [4631/4631])
步骤三:配置实现强制跳转的HTTPS网站服务
1)在www服务器上,确认准备的私钥、证书文件位置
[root@www ~]# ls -lh /etc/pki/tls/private/www.key
-rw-------. 1 root root 1.7K 8月 19 14:13 /etc/pki/tls/private/www.key
[root@www ~]# ls -lh /etc/pki/tls/certs/www.crt
-rw-r–r--. 1 root root 4.6K 8月 19 14:51 /etc/pki/tls/certs/www.crt
2) 调整httpd服务配置,以便启用SSL引擎
此例中以RHEL6自带的httpd网站服务为例,需要安装mod_ssl模块包。然后修改/etc/httpd/conf.d/ssl.conf文件,添加启用SSL的设置,以及将http://访问自动重定向(跳转)为https://访问的设置。
[root@www ~]# yum -y install httpd mod_ssl
… …
[root@www ~]# vim /etc/httpd/conf.d/ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Listen 443
… …

SSLEngine on
… …
SSLCertificateFile “/etc/pki/tls/certs/www.crt”
SSLCertificateKeyFile "/etc/pki/tls/private/www.key“

… …
RewriteEngine on //启用地址重写引擎
RewriteCond %{SERVER_PORT} !^443$ //重写条件为非443端口的访问
RewriteRule (.) https://%{SERVER_NAME}/$1 [R] //将URL重写为https://开头
[root@www ~]# vim /etc/httpd/conf/httpd.conf
… … //确认ssl.conf能够被主配置所调用
Include conf.d/
.conf
[root@www ~]# service httpd restart
停止 httpd: [确定]
正在启动 httpd: [确定]
[root@www ~]# netstat -anpt | grep httpd
tcp 0 0 :::80 ::? LISTEN 31645/httpd
tcp 0 0 :::443 ::? LISTEN 31645/httpd
3)访问HTTPS站点进行测试
在测试机pc120上,可以从浏览器直接访问https://www.tarena.com,或者访问http://www.tarena.com自动跳转为https://www.tarena.com。首次访问时会出现安全提示,单击“确定”即可,如图-2所示。

另外,由于这个网站的证书是企业自建CA颁发的,而并不是由互联网中合法、可信的CA机构所颁发,因此会出现关于证书问题的安全警报,如图-3所示,单击“是”即可。

成功接收证书、信任证书以后,就可以看到网页内容了;而且,从地址栏里可以看到访问的协议为HTTPS,如图-4所示,说明已经支持加密通信了。

构建HTTPS安全网站相关推荐

  1. react中使用构建缓存_通过构建海滩度假胜地网站,了解如何使用React,Contentful和Netlify...

    react中使用构建缓存 In this full course from John Smilga you will learn React by building a beach resort we ...

  2. 使用php与mysql构建我们的网站

    技术这个玩意就是要不断的去使用,才能够熟能生巧.今天我记录的使用php与mysql构建我们的网站,其实是我两年前的时候写的项目. 现在看看自己以前写的个人项目,也会感叹时间究竟带走了什么?好记性不如烂 ...

  3. Skeljs – 用于构建响应式网站的前端开发框架

    skelJS 是一个轻量级的前端框架,用于构建响应式站点和应用程序.让设计人员和开发人员可能够使用四个强大的组件:CSS 网格系统,响应式处理程序,CSS 的快捷方式和插件系统. 您可能感兴趣的相关文 ...

  4. 9个最佳新闻聚合器网站(+如何构建自己的网站)

    Do you want to read the latest news and updates from your favorite blogs all at one place? 您是否想一站式阅读 ...

  5. (旧)2- 大家一起学:Flask构建弹幕微电影网站-前端首页搭建-0

    Flask 构建微电影视频网站 已上线演示地址: http://movie.mtianyan.cn 项目源码地址:https://github.com/mtianyan/movie_project 上 ...

  6. 用jQuery Masonry快速构建一个pinterest网站布局

    用jQuery Masonry快速构建一个pinterest网站布局 [jQuery插件]用jQuery Masonry快速构建一个pinterest网站布局 http://masonry.desan ...

  7. NodeJs实战-Express构建照片存储网站(2)-上传、展示文件

    Express构建照片存储网站2-上传.展示文件 静态资源显示图片 photo页面展示文件夹下的图片 上传文件 增加上传页面的路由 增加提交接口的路由 网站效果图 项目地址 上一节使用的静态数据存储的 ...

  8. docsify 构建文档网站之定制功能(全网最全)

    作者: wugenqiang 学习笔记:https://notebook.js.org/ 微信公众号:码客 E 分享(ID:enjoytoshare) 文档后续更新地址:docsify 构建文档网站 ...

  9. (旧)3- Flask构建弹幕微电影网站- 课程介绍

    Flask 构建微电影视频网站 已上线演示地址: http://movie.mtianyan.cn 项目源码地址:https://github.com/mtianyan/movie_project 持 ...

最新文章

  1. 通讯波形记录——I2S、I2C、Uart、SPI
  2. 2019-2020 Google研究资助奖(Faculty Research Award)获奖出炉!185人上榜
  3. Jsp实现网上彩票销售系统
  4. chrome下的img.onload
  5. mysql数据库安装,真香!
  6. Python内存管理以及垃圾回收机制
  7. python图标的演变_python day 22 CSS拾遗之箭头,目录,图标
  8. springboot使用Freemarker继承
  9. 7天速成、免费学习,这套Python入门课我收藏了丨资源帖
  10. 在 Intellij IDEA 中 调试 angular e2e test
  11. ubuntu日常使用指南
  12. ubuntu16.04 将cuda10.1降为cuda10.0
  13. Java—网络编程相关概念
  14. linux版本浏览器有哪些,5款面向Linux的简单Web浏览器
  15. 用油猴子定制你的个性化插件
  16. 360压缩加密压缩文件
  17. 科学家正在尝试取用脂肪细胞3D打印人类心脏
  18. 36个助你成为专家需要掌握的JavaScript概念
  19. packet tracer配置ssh、telnet
  20. 苹果电脑mac os+win双系统在线安装回macos

热门文章

  1. 一个程序员的水平能差到什么程度?尼玛,都是人才呀...
  2. 第十四章 jQuery选择器
  3. 不成熟的 NLP 技术与人工智能结合,下一个“商机”在哪儿?
  4. 踏足Flutter 安装开发环境
  5. python基础—for循环练习(给定四个数字组成互不相同的三位数个数)
  6. 缺失值处理 fillna
  7. 【打印】打印队列无法删除怎么办 如何清理Win10打印队列
  8. URL、URI、域名
  9. 堆叠线缆的光模块与普通光模块区别
  10. 计算机网络求职英语作文,网上求职/The Internet Makes Job Hunting More Efficient