openssl生成https证书

    xiaoxiao2021-12-01  50

    openssl生成https证书

    简介

    本文主要介绍在Linux环境下通过openssl生成自己的ssl证书,并搭配nginx服务器启用https。我对证书的了解也不是很多,从网上搜罗一些资料,并在CentOS上成功搭建HTTPS服务器,通过本文整理如下:

    准备工作

    /etc/pki/CA/index.txt 跟踪已颁发的证书,初始为空。注意是0字节,不然会报出一个错误。 wrong number of fields on line 1 (looking for field 6, got 1, '' left)/etc/pki/CA/serial文件,最后一次颁发的证书的序列号,初始值01,也可以是00等其它值。

    开始

    切换工作路径为/etc/pki/tls方便openssl文件引入。

    生成服务器端的私钥 key文件

    openssl genrsa -des3 -out server.key 1024 在/etc/pki/tls目录下生成了server.key文件。

    生成CSR文件

    openssl req -new -key server.key -out server.csr -config openssl.cnf 在/etc/pki/tls目录下生成了server.csr文件。

    自己生成CA的签名

    openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf 生成两个文件 ca.key 和ca.crt文件,后面签名用。

    CA签名CSR文件形成证书 crt文件

    用上一步生成的ca.key和ca.crt签名第二步生成了csr文件。 openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf 生成了server.crt文件。

    合并证书文件(crt)和私钥文件(key)

    cat server.crt server.key > server.pem

    搭建https服务器

    修改nginx配置文件如下:

    server { listen 443; server_name localhost; root /var/www/html; ssl on; ssl_certificate /etc/pki/tls/server.pem; ssl_certificate_key /etc/pki/tls/server.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { } }

    然后通过浏览器输入 https://localhost就可以查看效果了。

    如果想要php支持https,只要加入解析php的配置即可:

    location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; # 多加这一句 include fastcgi_params; }
    转载请注明原文地址: https://ju.6miu.com/read-679290.html

    最新回复(0)