• linux下使用openssl生成https的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;
    }
    

      

  • 相关阅读:
    删除字符串中的所有相邻的重复项
    前序 中序 后序
    用栈构建数组
    字符串
    链表相交 走完自己的路去走他人的路 总会相交
    环形链表
    selenium的简单登录操作
    【Spring 从0开始】IOC容器的Bean管理
    Ubuntu系统的常用命令:ssh保活、用户管理、开机自启、后台运行
    远程访问安装xfce4的内网服务器
  • 原文地址:https://www.cnblogs.com/caidingyu/p/11904277.html
Copyright © 2020-2023  润新知