zoukankan      html  css  js  c++  java
  • 生成自签名证书:生成证书和秘钥

    生成证书和秘钥

    简单生成的方法:

    1、mkdir  /certs

    2、cd  /certs

    3、生成自签名证书

    sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout registry.key -out registry.crt

    录入证书信息:
    CN

    Guangdong

    shenzhen

    albb

    Dev

    10.1.2.3

    123456@qq.com

    4、添加Linux系统对自签名证书的信任

    cat ./registry.crt >> /etc/pki/tls/certs/ca-bundle.crt

    ===============================

    以下方法复杂,又可能报错,不推荐使用。

    ===============================

    1CA的私钥ca.key的生成 

    openssl  genrsa  -des3  -out  ca.key  2048  

    #生成CA颁发机构的私钥 。不加-des3生成的ca.key 是没加密的私钥。

     

    2CA的证书ca.crt的生成。用来签署server.csr请求文件。

    下边填写CA证书颁发机构的信息,和上边的解释一样,不再写了。参考上边

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

    #-x509格式 有效期是10年。

     

    到这里CA的ca.crt和ca.key已经准备就绪。可以为其他服务签署证书了。

    3生成签发请求文件server.csr文件先生成server.key,因为server.crt需要server.key来生成

    openssl  genrsa  -out  server.key  2048

    #注意这个server.key文件和上边的ca.key文件是不一样的。当然也可以使用同一个,但基本上正常人是不会这么用的。

     

    4生成server.csr请求文件。

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

    下边就是请求者的信息,将会被记录到server.csr文件中。具体解释请参看上边,一样的

     

    5下面签署server.csr文件。

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

    有时我在网上看见有人竟然这样cat server.key server.crt > server.pem    生成证书,这个server.pem文件确实可以当做证书来使用,但是极为不安全的。做测试的时候可以用,但生产环境坚决不能使用。这可是很危险的事情,你这样做证书和把密码写在银行卡上的道理是一样的。

     

    证书和秘钥生成结束,将server.crt和server.key拿给需要证书的服务并配置好即可。注意server.key文件的保密,切不可泄露。

    总结:CA必须同时具有ca.crt——CA的自签证书、 ca.key——CA的私钥。    被签发的服务必须提供server.csr——签发请求文件、server.key——被签发服务的私钥。

    证书需要私钥才能生成所以,现有*.key文件才会有*.crt或者*.csr文件.

    查看证书内容:

    openssl x509 -noout -text -in server.crt
    

    延伸:

    那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

    http://www.cnblogs.com/guogangj/p/4118605.html

     

  • 相关阅读:
    第二节.NET两种交互模式:c/s和b/s
    python自动登录代码
    关于C# webapi ,接口返回字符串和json格式 ,返回值中有反斜杠
    利用java内部静态类实现懒汉式单例
    Linux,Ubuntu,Mint 环境下 navicat 乱码问题
    如何在Linux中使用命令行卸载软件
    Linux安装Oracle JDK替换OpenJDK详解
    【踩坑】利用fastjson反序列化需要默认构造函数
    基于 Markdown 编写接口文档
    Gradle里面两个 依赖管理插件,可以不用关心 具体jar版本号
  • 原文地址:https://www.cnblogs.com/andy9468/p/10414371.html
Copyright © 2011-2022 走看看