linux下使用openssl生成https的crt和key证书

摘要:
x509证书一般会用到三类文,key,csr,crtKey是私用密钥openssl格,通常是rsa算法。可以通过以下方法生成没有密码的key:opensslrsa-inserver.key-outserver.keyserver.key就是没有密码的版本了。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。opensslx509-req-days3650-inserver.csr-CAca.crt-CAkeyserver.key-CAcreateserial-outserver.crt输入key的密钥后,完成证书生成。

x509证书一般会用到三类文,key,csr,crt

Key 是私用密钥openssl格,通常是rsa算法。

Csr 是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。

crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。

1.key的生成

openssl genrsa -des3 -out server.key 2048

这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:

openssl rsa -in server.key -out server.key

server.key就是没有密码的版本了。

2. 生成CA的crt

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

生成的ca.crt文件是用来签署下面的server.csr文件。

3. csr的生成方法

openssl req -new -key server.key -out server.csr

需要依次输入国家,地区,组织,email。最重要的是�有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。

4. crt生成方法

CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。

最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt

证书合并:

cat server.key server.crt > server.pem
关于非443端口下http与https共存参考:
nginx配置如下
server {
        listen 442;
        server_name www.test.cn;
        error_page 497  https://$server_name:442$request_uri; #正常错误反馈转换到https
        ssl on;
        ssl_certificate ../key/1_wx.ltanx.cn_cert.crt;
        ssl_certificate_key ../key/2_wx.ltanx.cn.key;
        ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
        location /test/ {
                proxy_pass http://192.168.10.10/test/;
                proxy_redirect off;
        }
        }

80端口重定向到443端口,nginx配置如下

server {
    listen 80;
    server_name wx.ltanx.cn;
    rewrite ^(.*) https://$server_name$1 permanent;
 ### 使用return的效率会更高 
 #  return 301 https://$server_name$request_uri;
}

免责声明:文章转载自《linux下使用openssl生成https的crt和key证书》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇简述数据三大范式?window消息机制下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

部署CentOS,集成Mysql、Nodejs、Nginx

1. Mysql安装 Step 1 安装源 https://dev.mysql.com/downloads/repo/yum/ 选择:Red Hat Enterprise Linux 8 / Oracle Linux 8 (Architecture Independent), RPM Package 这个download 跳转的页面对着No thanks,...

一些安全相关的HTTP响应头

现代浏览器提供了一些安全相关的响应头,使用这些响应头一般只需要修改服务器配置即可,不需要修改程序代码,成本很低。本文介绍一些这样的响应头: 1. Strict-Transport-Security HTTP Strict Transport Security,简称为HSTS。它允许一个HTTPS网站,要求浏览器总是通过HTTPS来访问它。现阶段,除了Chr...

aws ec2 导出成ova,导入到vmware

目的:项目迁移,从aws迁移到其他云商C调研:aws ec2支持导出成ova格式,C云商也支持后台导入步骤步骤:1)aws ec2安装aws cli参考https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/install-cliv2-linux.html 2)创建1个s3桶(和ec2同在一个regio...

微信分享连接个别手机、ios转发不显示图片的,缩略图不出来

像上面这种,微信分享后,打开是这样的。显示不了缩略图 解决方法: 在我们的网站网页 html代码中的<body>之后(也就是网站的第一张图片)增加<img src="http://singrr.com/wm/img/logo.jpg" /> 在body下面加 后缀名为jpg的 <img src="https://www.sh...

idea双击打不开没反应的解决办法

   原文链接:https://www.cnblogs.com/jiazibo/p/14618483.html 网上找了很多方法最后才找到一个可以解决的,如果遇到的问题与我这个相同可以用这个方法解决 1.打开idea安装根目录bin下,选中idea.bat右键编辑,或者使用txt打开 2.在idea.bat最后一行添加 pause  如图   3....

openssl3.0 加密算法库编程精要 04 详解 EVP API 消息摘要

4.1 消息摘要的概念   消息摘要有好几个名字,比如单项散列函数,Hash 函数,它是一个将可变长度的输入串转换为一个固定长度的输出 串的函数。大多数消息摘要算法都是公开的,它的安全性依赖于它的单向性,如果仅获取到消息摘要的结果,想要从结果 反推出原文几乎是不可能的事情。并且对于输入串的细微改变,都会引发输出串的雪崩式变化,所以消息摘要一般用于校 验数据...