最近在配置nginx的https协议相关时,需要生成openssl的私钥和证书,本着好记性不如烂笔头,把它记下来。
先是下载和安装openSSL,在此不做赘述,我的安装位置是D://fenbushi/nginx/openSSL文件下,在此目录下进入CMD,
接下来是生成私钥和证书的命令
生成server端的私钥key:
openssl genrsa -out ssl.key 2048
生成server端的req文件(这一步生成的req文件,包含公钥证书,外加身份信息,例如国家,省份,公司等。用它提交给ca,让ca来对它做签名 ):
openssl req -new -key server.key -out ssl.csr
或者拥有私有加密的
openssl req -new -x509 -nodes -sha1 -days 3650 -key ssl.key >ssl.crt,
但是在生成证书的时候发生了找不到配置文件 /usr/local/ssl/openssl.cnf的错误,这是一个典型的linux风格,在网上找了下,说是在C盘按照此路径创建文件夹,并创建文件openssl.cnf,然后运行,但最后并没有顺利,错误如旧。
最后,将该 /usr/local/ssl/openssl.cnf放入了与openSSL相同的D盘根部录下,然后根据提示填写地域信息,邮箱信息,证书生成完成。
也有同学说,运行
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
或
set OPENSSL_CONF=[path-to-OpenSSL-install-dir]\bin\openssl.cfg
在命令提示符中使用openssl
命令。
并未试过,不知道有没有用。
最后将生成的证书和私钥配置在nginx的配置文件中,当然https的客户端并不需要证书,直接免了。