热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxApacheSSL配置_LinuxApache环境下安装和部署SSL全过程

https(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的http通道,简单讲是http的安全版。即http下加入ssl层,https的安全基础是ssl,因此加密的详细内容就需要ssl。

https(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 http 通道,简单讲是 http 的安全版。即 http 下加入 ssl 层,https 的安全基础是 ssl,因此加密的详细内容就需要 ssl。
个人网站用 ssl 证书,国外这几年开始比较流行起来,尤其是 Google 对使用了 ssl 证书的网站收录良好,越来越多的网站开始使用 https 访问了。但是国内的一众搜索引擎对 ssl 就不那么友好了,而且使用 ssl 后会拖慢网站浏览速度。
不管怎样,安全性越来越受到重视总归不是一件坏事。
那么在 Apache 里配置 ssl 是怎样的,我们一步一步来。

 

一、使用 OpenSSL 生成证书请求
生成 rsa 私钥(2048位)

openssl genrsa -out teddysun.pem 2048

Generating RSA private key, 2048 bit long modulus
.........................+++
................................................................+++
e is 65537 (0x10001)

生成 csr 证书请求

openssl req -new -sha256 -key teddysun.pem -out teddysun.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) []:Shanghai  // 省
Locality Name (eg, city) [Default City]:Shanghai  // 城市
Organization Name (eg, company) [Default Company Ltd]:Teddysun // 组织或公司名
Organizational Unit Name (eg, section) []:  // 不填
Common Name (eg, your name or your server's hostname) []:*.teddysun.com // 此处演示是通配符域名,一般带 www 前缀即可
Email Address []:admin@teddysun.com  // 邮箱地址

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  // 不填
An optional company name []:  // 不填

查看生成完毕的文件

ll *.pem *.csr

-rw-r--r-- 1 root root 1058 Jan 22 14:30 teddysun.csr
-rw-r--r-- 1 root root 1675 Jan 22 14:25 teddysun.pem

将上述 2 个文件下载到本地,用记事本打开 teddysun.csr,里面的完整内容就是证书请求了。

二、签发证书

如果需要默认受信任的证书,则需要花钱购买了。比如 
https://www.namecheap.com/security/ssl-certificates/comodo/positivessl.aspx 
只需 9 美元/年。
利用第一步生成的 csr 文件,即可申请证书,过程略,网上有一堆图文教程。

另外,证书可以自签,但是使用的时候需要安装根证书,否则便不受信任。
下面说说自签名证书步骤

生成根证书 rsa 私钥(2048位)

openssl genrsa -out ca.pem 2048

Generating RSA private key, 2048 bit long modulus
...............................................+++
.........+++
e is 65537 (0x10001)

利用私钥创建根证书

openssl req -new -x509 -days 3650 -key ca.pem -out ca.crt

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) []:Shanghai
Locality Name (eg, city) [Default City]:Shanghai
Organization Name (eg, company) [Default Company Ltd]:Teddysun
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:teddysun.com Root CA
Email Address []:admin@teddysun.com

至此,有效期为 3650 天的根证书 ca.crt 就创建完毕了。
查看生成完毕的文件

ll *.pem *.csr *.crt

-rw-r--r-- 1 root root 1411 Jan 22 15:14 ca.crt
-rw-r--r-- 1 root root 1679 Jan 22 14:48 ca.pem
-rw-r--r-- 1 root root 1041 Jan 22 14:40 teddysun.csr
-rw-r--r-- 1 root root 1675 Jan 22 14:25 teddysun.pem

利用根证书签发 ssl 证书

openssl ca -in teddysun.csr -out teddysun.crt -cert ca.crt -keyfile ca.pem

这一步出错了,错误信息如下

Using configuration from /etc/pki/tls/openssl.cnf
/etc/pki/CA/index.txt: No such file or directory
unable to open '/etc/pki/CA/index.txt'
140292081481544:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/pki/CA/index.txt','r')
140292081481544:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

提示缺少文件,那我们就生成一个空文件

touch /etc/pki/CA/index.txt

继续执行

openssl ca -in teddysun.csr -out teddysun.crt -cert ca.crt -keyfile ca.pem

又出错了,错误信息如下

Using configuration from /etc/pki/tls/openssl.cnf
/etc/pki/CA/serial: No such file or directory
error while loading serial number
140375536244552:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/pki/CA/serial','r')
140375536244552:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

还是缺少文件,这里生成一个内容为 01 的文件

echo '01' > /etc/pki/CA/serial

再次执行

openssl ca -in teddysun.csr -out teddysun.crt -cert ca.crt -keyfile ca.pem

Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Jan 22 07:35:14 2015 GMT
            Not After : Jan 22 07:35:14 2016 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Shanghai
            organizatiOnName= Teddysun
            commOnName= *.teddysun.com
            emailAddress              = admin@teddysun.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                E8:7F:9E:BE:12:25:22:48:A2:49:AE:D5:CB:A6:7B:24:EE:A6:E2:5B
            X509v3 Authority Key Identifier: 
                keyid:C7:0C:EF:F2:73:8C:CB:01:7A:8F:9C:30:A7:80:37:FA:E7:B6:88:02

Certificate is to be certified until Jan 22 07:35:14 2016 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

至此,就签发了一个默认有效期为 365 天的通配符域名 *.teddysun.com 的 ssl 证书了。
如果想签发更长有效期的证书,比如 730 天的,则命令如下:

openssl ca -in teddysun.csr -out teddysun2.crt -days 730 -cert ca.crt -keyfile ca.pem

最长不能超过根证书的有效期。

查看最终生成完毕的文件

ll *.pem *.csr *.crt

-rw-r--r-- 1 root root 1411 Jan 22 15:14 ca.crt
-rw-r--r-- 1 root root 1679 Jan 22 14:48 ca.pem
-rw-r--r-- 1 root root 4594 Jan 22 15:35 teddysun.crt
-rw-r--r-- 1 root root 1041 Jan 22 14:40 teddysun.csr
-rw-r--r-- 1 root root 1675 Jan 22 14:25 teddysun.pem

分别解释一下这 5 个文件。
ca.crt 是签发完成的根证书文件
ca.pem 是根证书的私钥文件
teddysun.crt 是签发完成的域名证书文件
teddysun.csr 是证书请求文件
teddysun.pem 是签发域名的私钥

如果要使用自签名的证书,需要在本机导入根证书,步骤如下:
点击“安装证书”,下一步,将所有的证书放入下列存储,浏览,选择“收信任的根证书颁发机构”,下一步,完成。

安装好根证书后,再打开后,就是这个样子的:

自签名证书则是这个样子的:




推荐阅读
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 信息安全等级保护是指对国家秘密信息、法人和其他组织及公民的专有信息以及公开信息和存储、传输、处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的信息安全产品实 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
新洋之家140
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有