zoukankan      html  css  js  c++  java
  • 自建nginx的ssl证书

    环境:centos7.6、主机名称:demod.example.com、需要nginx支持ssl模块(参考:https://www.cnblogs.com/wukc/p/13289553.html

    1、创建目录

    mkdir /usr/local/nginx/ssl_key
    cd /usr/local/nginx/ssl_key

    2、创建private.key

    [root@localhost ssl_key]# openssl genrsa -out private.key 1024
    Generating RSA private key, 1024 bit long modulus
    .........................++++++
    ..........++++++
    e is 65537 (0x10001)
    [root@localhost ssl_key]# ls
    private.key
    # -out 参数指定密钥文件存放的位置和名字,1024是指密钥文件的长度,一般为1024或者2048

    3、创建cert_req.csr文件

    [root@localhost ssl_key]# openssl req -new -key private.key -out cert_req.csr
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:cn
    State or Province Name (full name) []:sc
    Locality Name (eg, city) [Default City]:cd
    Organization Name (eg, company) [Default Company Ltd]:sh
    Organizational Unit Name (eg, section) []:sh
    Common Name (eg, your name or your server's hostname) []:demod.example.com
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    
    [root@localhost ssl_key]# ll
    total 8
    -rw-r--r-- 1 root root 635 Jul 14 21:04 cert_req.csr
    -rw-r--r-- 1 root root 887 Jul 14 20:52 private.key
    
    # 指定密钥密钥文件来生成一个ca请求
    # 这个步骤会要求填入国家区域以及域名等信息
    # 最重要的一行是Common Name,需要填入与服务器关联的域名,或者是您服务器的公共IP地址

    4、创建server_cert.crt

    [root@localhost ssl_key]# openssl x509 -req -days 365 -in cert_req.csr -signkey private.key -out server_cert.crt
    Signature ok
    subject=/C=cn/ST=sc/L=cd/O=sh/OU=sh/CN=demod.example.com
    Getting Private key
    #相关参数说明
    req:此子命令指定我们要使用X.509证书签名请求(CSR)管理。“X.509”是SSL和TLS为其密钥和证书管理所遵循的公钥基础结构标准。我们想要创建一个新的X.509证书,所以我们使用这个子命令
    -x509:通过告诉实用程序我们要创建自签名证书而不是生成证书签名请求(通常会发生)来进一步修改上一个子命令
    -nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Nginx能够在没有用户干预的情况下读取文件。密码短语会阻止这种情况发生,因为我们必须在每次重启后输入密码
    -days 365:此选项设置证书被视为有效的时间长度。我们在这里设置了一年

    5、配置nginx.conf

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {               
            listen   443    ssl;
            server_name demod.example.com;
            ssl_certificate /usr/local/nginx/ssl_key/server_cert.crt;
            ssl_certificate_key /usr/local/nginx/ssl_key/private.key;       
            ssl_session_cache  shared:SSL:1m;
            ssl_session_timeout 5m;
            ssl_ciphers HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers on;
    
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
    }

    6、登录nginx进行验证

         https://100.98.100.215/index.html

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    BackgroundWorker原理剖析
    委托异步调用时BeginInvoke的陷阱处理
    线程静态在对象缓存中的妙用
    值得珍藏的.NET源码,不保存就没机会了
    .NET 4.5.1 参考源码索引
    .NET 4.5 参考源码索引
    .NET 4.0 参考源码索引
    WWF3.5SP1 参考源码索引
    WCF3.5 SP1 参考源码索引
    .NET 3.5.1 参考源码索引
  • 原文地址:https://www.cnblogs.com/wukc/p/13302250.html
Copyright © 2011-2022 走看看