跳转到内容
新建笔记

openssl

终端窗口
# 1.genrsa私钥文件(private.key)
openssl genrsa -out private.key 2048
# -out private.key: 指定输出文件名,存储生成的RSA私钥
# 2048: 私钥的位大小,这里使用2048位长度,增强安全性
# 2.根据私钥生成证书签名请求文件(Certificate Signing Request,简称CSR文件)
openssl req -new -key private.key -out cert.csr
# -new: 创建一个新的CSR
# -key private.key: 使用指定的私钥文件生成CSR。这里使用上一步生成的私钥
# -out cert.csr: 指定输出的CSR文件名
# 3.使用私钥对证书申请进行签名从而生成证书文件(pem文件)
openssl x509 -req -in cert.csr -out cacert.pem -signkey private.key
# -req: 表示输入的是一个CSR文件
# -in cert.csr: 指定输入的CSR文件名
# -out cacert.pem: 指定输出的证书文件名,这里生成的是一个PEM格式的证书文件
# -signkey private.key: 使用这个私钥对CSR文件进行签名

在 Windows 环境下,你仍然可以使用 OpenSSL 来生成私钥和 CSR(证书签名请求),尽管这可能需要你先下载和安装 OpenSSL。一旦安装了 OpenSSL,你可以按照以下步骤操作:

安装 OpenSSL

  1. 下载 OpenSSL:访问OpenSSL 官网或一个提供预编译 Windows 版本的网站,如SLProweb。Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)
  2. 安装 OpenSSL:下载适合你系统的版本(32 位或 64 位),并按照安装程序指示完成安装。

生成私钥和 CSR

  1. 打开命令提示符(CMD)。

  2. 转到 OpenSSL 的 bin 目录,例如,如果你安装在C:\OpenSSL-Win64,输入:

    终端窗口
    cd C:\OpenSSL-Win64\bin
  3. 使用以下命令生成私钥和 CSR:

    终端窗口
    openssl req -new -newkey rsa:2048 -nodes -keyout jes.cn.key -out jes.cn.csr

    这将在当前目录下创建一个名为jes.cn.key的私钥文件和一个名为jes.cn.csr的 CSR 文件。

提交 CSR 并获取 SSL 证书

将jes.cn.csr文件内容提交给你选择的证书颁发机构(CA)。完成验证过程后,CA 将提供 SSL 证书(通常是.crt或.pem文件)和中间证书(如果适用)。

配置 Apache 使用 SSL 证书和私钥

  1. 将你从 CA 获得的证书和中间证书(如果有的话)保存到服务器上的某个目录,例如C:\Apache24\conf\。

  2. 编辑 Apache 的 SSL 配置文件(通常是conf\extra\httpd-ssl.conf),设置SSLCertificateFile、SSLCertificateKeyFile和SSLCertificateChainFile(如果需要)指向相应的文件:

    SSLCertificateFile "C:/Apache24/conf/jes.cn.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/jes.cn.key"
    SSLCertificateChainFile "C:/Apache24/conf/ca_bundle.crt"
  3. 保存配置文件并重启 Apache 服务。

    在 Windows 上,你可以通过服务管理器找到 Apache 服务并重启,或使用命令行:

    终端窗口
    httpd -k restart

确保你的防火墙和安全组设置允许 HTTPS(端口 443)的流量。这样,你的网站就可以通过 HTTPS 安全地提供服务了。


Openssl 如何生成证书

一、生成 CA 证书

目前不使用第三方权威机构的 CA 来认证,自己充当 CA 的角色。

网上下载一个 openssl 软件

终端窗口
# 一、生成CA证书
# 1.创建私钥 :
openssl genrsa -out jscn-key.pem 1024
# 2.创建证书请求 :
openssl req -new -out jscn-req.csr -key jscn-key.pem
>> Country Name (2 letter code) [AU]:cn
>> State or Province Name (full name) [Some-State]:zhejiang
>> Locality Name (eg, city) []:hangzhou
>> Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
>> Organizational Unit Name (eg, section) []:test
>> Common Name (eg, YOUR name) []:root
>> Email Address []:sky
# 3.自签署证书 :
openssl x509 -req -in jscn-req.csr -out jscn-cert.pem -signkey jscn-key.pem -days 3650
# 4.将证书导出成浏览器支持的.p12格式 :
openssl pkcs12 -export -clcerts -in jscn-cert.pem -inkey jscn-key.pem -out jscn.p12
# 密码:changeit
# 二、生成server证书
# 1.创建私钥 :
openssl genrsa -out server/server-key.pem 1024
# 2.创建证书请求 :
openssl req -new -out server/server-req.csr -key server/server-key.pem
>> Country Name (2 letter code) [AU]:cn
>> State or Province Name (full name) [Some-State]:zhejiang
>> Locality Name (eg, city) []:hangzhou
>> Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
>> Organizational Unit Name (eg, section) []:test
>> Common Name (eg, YOUR name) []:192.168.1.246 注释:一定要写服务器所在的ip地址
>> Email Address []:sky
# 3.自签署证书 :
openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
# 4.将证书导出成浏览器支持的.p12格式 :
openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12
密码:changeit
# 三、生成client证书
# 1.创建私钥 :
openssl genrsa -out client/client-key.pem 1024
# 2.创建证书请求 :
openssl req -new -out client/client-req.csr -key client/client-key.pem
>> Country Name (2 letter code) [AU]:cn
>> State or Province Name (full name) [Some-State]:zhejiang
>> Locality Name (eg, city) []:hangzhou
>> Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
>> Organizational Unit Name (eg, section) []:test
>> Common Name (eg, YOUR name) []:sky
>> Email Address []:sky 注释:就是登入中心的用户名
>> Please enter the following ‘extra’ attributes
>> to be sent with your certificate request
>> A challenge password []:123456
>> An optional company name []:tsing
# 3.自签署证书 :
openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
# 4.将证书导出成浏览器支持的.p12格式 :
openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
密码:changeit