基于openssl 自行签发https 协议证书 ,同时支持nginx配置

1准备工作

准备一台有openssl环境的主机即可,openssl版本暂时无要求。本次环境采用centeros7.6自带openssl。另外,准备一个nginx。

2证书签发

目录

1准备工作

2证书签发

2.1生成根秘钥

2.2生成根证书

2.2.1根证书格式转换

2.3生成私钥key

2.4生成请求文件

2.5根据root根证书签发服务器证书

2.6nginx配置


2.1生成根秘钥

使用以下命令创建根密钥masee-key.pem,并使用des3进行加密。密码为:Zict7780#@$sthjj

# 根秘钥生成
openssl genrsa -des3 -out  masee-key.pem 4096


2.2生成根证书

使用刚创建好的根密钥 masee-key.pem 生成根证书,并输入相关信息。

# 根据秘钥生成根证书 
openssl req -new -x509 -days 3650 -key masee-key.pem -out masee-ca.pem

# 补充完善根证书信息
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:AnHui
Locality Name (eg, city) [Default City]:MaAnShan
Organization Name (eg, company) [Default Company Ltd]:MASEE
Organizational Unit Name (eg, section) []:masee
Common Name (eg, your name or your server's hostname) []:masee.com      
Email Address []:[email protected]

# 查看已生成根证书
openssl x509 -text -in masee-ca.pem -noout


客户端请求端需要将该证书安装到本机

2.2.1根证书格式转换

将masee-ca.pem格式证书转换成masee-ca.cer

# 根证书格式转换,将pem转换成cer
openssl x509 -inform pem -in masee-ca.pem -outform der -out masee-ca.cer

2.3生成私钥key

生成应用程序私钥key,此处可以选择加入密码,也可以选择加入密码,若加入密码,则每次启动服务器都需要使用密码。加密码参考2.1生成根秘钥章节,参数-des3。

# 生成应用服务私钥key
openssl genrsa -out masee-server-key.key 2048

2.4生成请求文件

准备openssl.cnf文件,方便执行以下命令时无须追一输入参数。

encrypt_key = no

distinguished_name = CA_DN

req_extensions = v3_req

[CA_DN]

countryName = Country Name (2 letter code)

contryName_default = "CN"

stateOrProvinceName = State or Province Name (full name)

stateOrProvinceName_default = "AnHui"

localityName = Locality Name (eg, city)

localityName_default = "MaAnShan"

organizationName = organizationName(eg,company)

organizationName_default = "MASEE"

organizationalUnitName  = organizationalUnitName

organizationalUnitName_default  = "masee"

commonName = Common Name(e.g. server FQDN or your name)

commonName_default = "www.masee.com"

[v3_req]

basicConstraints = CA:FALSE

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

subjectAltName = @alt_names

[alt_names]

IP.1 = 127.0.0.1

根据masee-server-key.key秘钥文件生成请求文件。

# 根据2.3生成的秘钥生成请求文件
openssl req -new -out masee-server.csr -key masee-server-key.key -keyform PEM -extensions v3_req -config openssl.cnf

2.5根据root根证书签发服务器证书

根据2.1、2.2、2.4章节文件,签发服务器证书。

# 根据2.3生成的秘钥生成请求文件
openssl x509 -req -in masee-server.csr -out masee-server-cert.cer -CA masee-ca.pem -CAkey masee-key.pem -CAcreateserial -days 3650 -extensions v3_req -extfile openssl.cnf

2.6nginx配置

server {
        listen       443 ssl;
        server_name  localhost 127.0.0.1;
  
        ssl_certificate      masee-server-cert-127.cer;
        ssl_certificate_key  masee-server-key-127.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;
        }
    }

同时将2.2.1根证书格式转换章节中的证书安装到系统受信任的根证书颁发机构中。步骤如下:

第一步:windows电脑运行masee-ca.cer文件,点击“安装证书”。

基于openssl 自行签发https 协议证书 ,同时支持nginx配置_第1张图片

第二步:选择本地计算机,运行下一页。

基于openssl 自行签发https 协议证书 ,同时支持nginx配置_第2张图片

第三步:选择“将所有的根证书都放入下列存储”,选择“受信任的根证书颁发机构”。点击下一页执行完成。

基于openssl 自行签发https 协议证书 ,同时支持nginx配置_第3张图片

完成,效果如下:

基于openssl 自行签发https 协议证书 ,同时支持nginx配置_第4张图片

你可能感兴趣的:(nginx,https,服务器)