这里,不探究证书原理。我们要完成的任务是,自己充当CA,然后签出证书供服务器使用。

本次教程是在windows实现,实验之前,确认自己的电脑中有openssl程序。如果没有,博主帮你准备了一个:http://download.okcoder.cn/openssl_create.zip

第一步:生成CA证书

1、创建私钥

openssl genrsa -out ca/ca-key.pem 1024

2、创建证书请求
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem

3、自签署证书,有效期10年
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650

4、将证书导出成浏览器支持的.p12格式 (这一步不需要,可以省略)
openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12

创建之后,将这个根证书导入浏览器中(受信任的根证书颁发机构):

IE:双击第4步生成的p12证书文件

Firefox:选项->隐私与安全 ->证书->查看证书->将ca-cert.pem导入“证书颁发机构”

Chrome:“菜单”设置->左上角"设置"->高级->隐私设置和安全性->证书管理->受信任的根证书颁发机构->导入ca-cert.pem证书文件

第二步:生成Server证书

1、创建私钥

openssl genrsa -out server/server-key.pem 1024

2、创建证书请求
openssl req -new -out server/server-req.csr -key server/server-key.pem

(这一步,Common Name要填写自己的域名)

3、用自己的CA证书,签署Server证书
openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650

4、将证书导出成浏览器支持的.p12格式 (这一步不需要,可以省略)
openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12

创建Server证书之后,与Ca证书合成完整的证书链:

cat server-cert.pem ca-cert.pem > full.pem

第三步:将Server证书布署到服务器上

server {
    listen 80;
    listen 443 ssl;
    server_name 域名;    #这里的域名要和Server证书域名对应
    index index.html index.htm index.php;
    root 站点根目录;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

    ssl_certificate /path/to/full.pem;
    ssl_certificate_key /path/to/server-key.pem;

    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

location ~ .*\.(php|php5)?$
    {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires 30d;
     }
    location ~ .*\.(js|css)?$
    {
        expires 1h;
    }
}

到这里,自签证书可以使用了。

实验结果:IE和Firefox都可以正常访问,但是Chrome却一直无法识别自签证书(NET::ERR_CERT_AUTHORITY_INVALID),如果有实验成功的小伙伴欢迎留言。

参考资料:

https://blog.csdn.net/xiaxiaorui2003/article/details/41312381

创建自定义ssl证书用于https的更多相关文章

  1. spring boot / cloud (五) 自签SSL证书以及HTTPS

    spring boot / cloud (五) 自签SSL证书以及HTTPS 前言 什么是HTTPS? HTTPS(全称:Hyper Text Transfer Protocol over Secur ...

  2. SSL证书部署HTTPS站点Apache/Nginx配置

    SSL证书及HTTPS协议 SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:1.数据信息在客户端和服务器之间的 ...

  3. Linux下Nginx配置阿里云 SSL证书实现HTTPS访问

    这篇文章主要介绍了nginx配置ssl证书实现https访问的示例 1.服务器系统:Centos 2. 阿里云申请SSL证书 选择“免费版DV SSL”,点击立即购买: 下载证书 列表中找到已签发的证 ...

  4. 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)

    在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...

  5. 在IIS下部署SSL证书实现HTTPS

    在IIS下部署SSL证书实现HTTPS   HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全” ...

  6. 阿里云服务器Centos上Apache安装SSL证书配置Https

    首先我们先去阿里云申请一个免费的SSL证书(https://common-buy.aliyun.com/?spm=5176.7968328.1266638..5e971232BzMSp5&co ...

  7. 自定义SSL证书实现单双向ssl认证记录

    自定义SSL证书: 1.ca证书 #openssl genrsa -out ca.key 2048 #openssl req -new -key ca.key -out ca.csr #openssl ...

  8. windows系统配置Nginx使用SSL证书实现Https反向代理

    Nginx反向代理服务,可以代理接收请求,并把请求转发到设置好的其他服务器上. 例如,Nginx服务器为 100.101.102.103,A服务为 100.101.102.104 ,通过Nginx配置 ...

  9. Https:创建部署SSL证书进行双向认证

    一.前言 建立客户端与服务器的Https的连接需要证书进行双向验证后,才可访问.   二.证书类型 不同数字证书部署在服务器上后,用户浏览器访问网站时,展示如下: 1.无证书时 显示不安全标识. 2. ...

随机推荐

  1. java中的.java和.class的区别

    java文件就是这样一个未经编译的源程序,一般是给程序员看的. class文件就是被编译器编译过的java文件,通常是给计算机看的.

  2. JAVA java

    { 用法: java [-options] class [args...]           (执行类)   或  java [-options] -jar jarfile [args...]    ...

  3. FFmpeg Download

    https://ffmpeg.zeranoe.com/builds/

  4. spring boot 项目启动无法访问,排查

    查看docker日志,后台应用正常启动,定时任务正常执行,但是前端无法访问到后端接口,点击提示系统错误,解压出项目二级域名,访问域名,报错:Kong Error,说明Kong路由转发没有绑定项目端口, ...

  5. js基础用法 ,基础语法

    js用法: HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 <head& ...

  6. JavaWeb学习篇之----自定义标签&&JSTL标签库详解

    今天来看一下自定义标签的内容,自定义标签是JavaWeb的一部分非常重要的核心功能,我们之前就说过,JSP规范说的很清楚,就是Jsp页面中禁止编写一行Java代码,就是最好不要有Java脚本片段,下面 ...

  7. APIO 2007 风铃

    题目描述 你准备给弟弟 Ike 买一件礼物,但是,Ike 挑选礼物的方式很特别:他只喜欢那些能被他排成有序形状的东西. 你准备给 Ike 买一个风铃.风铃是一种多层的装饰品,一般挂在天花板上. 每个风 ...

  8. 陈云pytorch学习笔记_用50行代码搭建ResNet

    import torch as t import torch.nn as nn import torch.nn.functional as F from torchvision import mode ...

  9. VIM 配色方案,先保存一下

    https://github.com/chriskempson/tomorrow-theme http://ethanschoonover.com/solarized http://ethanscho ...

  10. idea中选中了一个变量名,会高亮显示位于别的地方的这个变量名,那么怎么修改其他地方的高亮颜色