Linux(centos)上配置https

来源:互联网 发布:数据统计的方法有哪些 编辑:程序博客网 时间:2024/05/21 00:52

Linux(centos)上配置https

现在,应该很容易发现很多网站,不是以前的http开头,而是https开头,经常使用最明显的就是“测试是否有网”的百度网址https://www.baidu.com/,为什么换协议?安全性。

不过,现在真正需要做https的网站,个人觉得,电商网站、邮件网站、还有各种登录等等,不过像是个人主页,或者本身就是静态页面的网站,是没有太大必要的。当然稍微弄一下,也没什么,能让懂的人觉得安全感多那么一点,不是很懂技术的,其实没差。我自己做的网站也弄了https,地址是https://www.shaoxi93.com,现在上面还没什么东西,今后会慢慢充实它的。不过我配https并不是为了装13,是因为下图…
这里写图片描述
没错,微信小程序…必须要https。这里说下,微信小程序今年3月底开始可以个人申请开发,不需要企业,这点还是比较好的,除了没有支付功能,其他和企业注册的差别不是很多。我的个人小程序勺夕目前还在开发中,等开发差不多了,也可以写点小程序方向的总结出来分享交流下。


https介绍

https简单来说就是http+ssl,基于安全套接字层的超文本传输协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。这些概念性的东西网上介绍的很多。

https与http区别

区别就是在于https这个多出来的 s。SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
其他要说很明显能感觉到的,就是:
- http默认端口是80,https是443
- http不会对传输的数据进行加密,https会。

centos上配置https

申请ssl证书

这个购买域名后,一般在购买域名的网站都会有申请ssl的地方,例如我买过域名的腾讯云,阿里云上都有,真的没有的话,度娘一下吧。如下图:
这里写图片描述
有免费的,还有收费的,区别参考网络1:
1. 英文证书链:免费SSL证书由Free SSL的英文证书链签发用户证书;收费SSL证书由DV SSL的英文证书链签发用户证书。
2. 中文证书链:免费SSL证书由免费SSL的中文证书链签发用户证书;收费SSL证书由DV SSL的中文证书链签发用户证书。
3. 支持域名数量:免费SSL证书最多支持5个多域名;收费SSL证书最多支持100个多域名。
4. 安全保险:免费SSL证书无安全保险;收费SSL证书享受1万元安全保险。
5. 设备兼容性:免费SSL证书的设备兼容性一般;收费SSL证书的设备兼容性较好。
最明显的应该是区别345吧。

如何在服务器上配置

首先说明下,我在自己的云服务器上配置了两次https,一次apache,后来一次改用nginx,所以下面会有两块。但是其实原理都差不多,即:
1. 修改ssl.conf文件配置,目的就是配置证书和key文件的位置
2. 修改httpd.conf文件配置,目的是为了开启https

Apache

首先介绍下这俩个配置文件在哪里能找到:
1. 云服务器自带,或者yum装的apache,需要配置ssl.conf和httpd.conf /etc/httpd/conf.d/ssl.conf;/etc/httpd/conf/httpd.conf
2. xampp 安装的集成环境需要配置httpd-ssl.conf和httpd.conf /opt/lampp/etc/extra/httpd-ssl.conf;/opt/lampp/etc/httpd.conf
如果以上都没有,建议用find命令去找。

配置步骤:

  • ssl.conf文件配置
<VirtualHost _default_:443>    ---------------->找到此位置DocumentRoot "/usr/www"  -------------->配置服务器网站目录ServerName www.example.com:443   -------------->配置域名SSLEngine On  SSLCertificateFile ../bin/server.crt     ------>配置数字证书目录             SSLCertificateKeyFile ../bin/server.key  ------>配置key目录SSLCertificateChainFile ../bin/ca.crt    ------>配置中继证书

.key文件好分辨,但是两个证书文件如何分辨呢?如果你和我差不多方式申请下载下来的证书,.crt文件名中有bundle的就是中继证书。

【重要】更改完成后,注意将配置文件往下翻,将原有的配置,如发现上面的在文件后面有出现,则前面在加一个#,注释掉。(很多人配置完保存好,还是不行很可能是这些配置没注释)

  • httpd.conf文件配置
    httpd.conf中打开ssl模块,然后引入ssl.conf文件。
    1. 搜索ssl关键字,如果有类似以下代码,则修改地址,或将#删除,如果没有…那得先检查是否有ssl模块了2
      LoadModule ssl_module modules/mod_ssl.so
    2. 查找是否有引入http-ssl.conf配置,如果有,请无视,一般会有判断加载的
      Include "/opt/lampp/etc/extra/httpd-ssl.conf"
      如下是有判断的情况:
<IfDefine SSL>Include etc/extra/httpd-ssl.conf</IfDefine>

Nginx

如果你也是yum自动安装的Nginx,配置文件位置应该在:/etc/nginx/conf.d/,如果不是在此目录,同样建议使用find命令来找。
Nginx的ssl配置中只有证书和key文件,其余保持一致。

这里说下我遇到的开启异常:

Starting nginx: nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

解决方案:
将/etc/nginx/conf.d/default.conf文件中

listen       80 default_server;listen       [::]:80 default_server;

改为

listen       80;#listen       [::]:80 default_server;

后重启Nginx。



  1. 内容摘自网络:http://www.wosign.com/faq/free_dv_ssl.htm ↩
  2. 1、 确认是否安装ssl模块
    是否有mod_ssl.so文件
    2、 生成证书和密钥
    linux下
    步骤1:生成密钥
    命令:openssl genrsa 1024 > server.key
    说明:这是用128位rsa算法生成密钥,得到server.key文件
    步骤2: 生成证书请求文件
    命令:openssl req -new -key server.key > server.csr
    说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步提很多问题,一一输入
    步骤3: 生成证书
    命令:openssl req -x509 -days 365 -key server.key -in server.csr > server.crt
    说明:这是用步骤1,2的的密钥和证书请求生成证书server.crt,-days参数指明证书有效期,单位为天 ↩
0 0
原创粉丝点击