自签名证书支持https-编程思维

第1步:生成私钥

  • 生成rsa私钥,des3算法,1024位强度,ssl.key是秘钥文件名。
    openssl genrsa -des3 -out ssl.key 1024

  • 然后他会要求你输入这个key文件的密码,由你随便设置。

  • 由于以后要给nginx使用。每次reload nginx配置时候都要你验证这个密码。如果不想以后那么麻烦,生成文件之后可以执行如下命令删掉密码。
    openssl rsa -in ssl.key -out ssl.key

第2步:生成CSR(证书签名请求)

  • 根据刚刚生成的key文件来生成证书请求文件

openssl req -new -newkey rsa:2048 -nodes -subj '/' -key ssl.key -out ssl.csr主题可以空着,但是不能不写这个参数,不然会让你一行一行输入
openssl req -new -newkey rsa:2048 -nodes -subj '/C=CN/ST=GuangDong/L=Shenzhen/O=yalong/OU=yalong/CN=yalong.site' -key ssl.key -out ssl.csr 如果想详细描述你的证书,可以用这个命令

第3步:生成自签名证书

  • 根据以上2个文件生成crt证书文件,执行下面命令
  • 这里3650是证书有效期(单位:天)。最后使用到的文件是key和crt文件。
    openssl x509 -req -days 3650 -in ssl.csr -signkey ssl.key -out ssl.crt

第4步:配置nginx证书

添加以下内容,以下配置可以同时支持http和https

server
    {
        listen 80; # 同时监听80和443
        listen 443 ssl; # 末尾的ssl不能去掉
        ssl_certificate "/root/ssl.crt"; # 生成的证书文件路径
        ssl_certificate_key "/root/ssl.key"; # 第一步的key文件路径

	# 一些可有可无的配置
        ssl_session_cache shared:SSL:1m;  
        ssl_session_timeout 5m;
        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers on;

        # 真实服务地址
        location ~ .* {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        
	# 如果是http,转发到https
        if ($server_port = 80 ) {
            return 301 https://$host$request_uri;
        }

	 location ~ /\.
        {
            deny all;
        }
}

结果展示

会提示不安全,但是可以用https方式访问

注意点

  • 记得开启443端口防火墙
  • nginx配置完记得重新加载配置,nginx -s reload

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://www.cnblogs.com/lyalong/p/14470182.html

个人文章-编程思维

前言项目牵涉到做一个语音在线实时收集,然后进行asr识别的B/S应用。所以需要浏览器调用“麦克风”来获取用户语音。此时需要在localhost或者https下才能实现这样的功能。类似于google的语音翻译,如下所示: 内容1.在阿里云控制台进入SSL证书(应用安全)界面 进入ssl证书 2.选择“免费证书”

个人文章-编程思维

HTTP协议默认是明文传输,存在一定的安全隐患,容易被中间人窃听和攻击,在 加密解决HTTP协议带来的安全问题 中提到使用哈希、对称加密、非对称加密等方式对数据加密,能解决数据安全的问题。以上加密方式需要我们手动的使用加密算法对数据进行处理,如果觉得自己制定加密规则比较麻烦,可以使用统一的数据安全解决方法:HTTPS(

独立产品灵感周刊decohack-编程思维

本周刊记录有趣好玩的独立产品设计开发相关内容,每周发布,往期内容同样精彩,感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到,建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。本周看到了很多时间管理的工具类型产品,不同平台这类产品都非常多,而且这类产品也是最适合独立开发者或者小团队做的。新的一年开始了,如何管理

聊一聊https双向认证的简单应用-编程思维

目录背景准备工作ASP.NET Corenginx 反向代理IIS 部署总结参考资料 背景 在三方接口对接中,偶尔会遇到需要传递证书的情况,这种方式其实是在SSL握手过程中会同时验证客户端和服务器的身份,这就是我们常说的 双向认证。 双向认证需要服务器和客户端提供身份认证,只能是服务器允许的客户方能访问,安全性相对于要

https 真的安全吗,可以抓包吗,如何防止抓包吗-编程思维

Android_interview github 地址 大家好,我是程序员徐公,加上实习,有五年中大厂经验。自荐一下,可以关注我的微信公众号程序员徐公 公众号程序员徐公回复黑马,获取 Android 学习视频 公众号程序员徐公回复徐公666,获取简历模板,教你如何优化简历,走进大厂 公众号程序员徐公回复面试,可以获得

http协议详解-编程思维

前言 对于http协议,每个人都或多或少地会用到它,因为浏览器的地址栏就有,比如 http://www.baidu.com HTTP协议 1.http协议简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wi

个人文章-编程思维

HTTP协议默认是采取明文传输的,容易被中间人窃听、拦截、篡改,存在安全隐患。常见提高安全性的方法是对通信内容进行加密,再进行传输,常见的加密方式有不可逆加密:单向散列函数可逆加密:对称加密、非对称加密其它组合加密:混合密码、数字签名、证书单向散列函数单向散列函数是一种不可逆的加密方式,加密后不能再解密将数据恢复原样,

.crt证书转成.pem格式 java实现_mysticbinary-编程思维

背景知识介绍 图是网上找到, 链接: https://www.zhihu.com/question/29620953 需求 .crt 和 .pem 后缀的都是证书,只是需要用不同的工具才能查看里面的内容,理解是不同的编码方式。 比如.crt需要系统自带的证书工具就能打开,.pem需要做Base64解码才能查看。 有个

使用openssl(windows x64版)将pem格式证书转换为p12格式-编程思维

今天同事遇到一个问题,他获得的证书只有pem格式,而服务器要求提交p12格式,一时搞不定,来找我帮忙。 我之前也从未接触过证书类型的转换,所以上网大致搜索了一下,又亲自动手试了试,现将有关心得经验记录如下: 1.Windows环境下转换证书格式可以下载一个工具名字叫OpenSSL(见附件含64位和32位) 2.安装后,

glossary-编程思维

Glossary term terminology Certificate authority A norganization that authorizes a certificate.  Certificate signing request(CSR) A file that contains

漫谈ios程序的证书和签名机制-编程思维

漫谈iOS程序的证书和签名机制 P_Chou 6 天前 发布 推荐 4 推荐 收藏 42 收藏,2.9k 浏览 原文:漫谈iOS程序的证书和签名机制 接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证