nginx自签名证书配置https

nginx自签名证书配置https

添加nginx官方yum源

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

yum安装最新版本nginx

yum install -y yum-utils
yum-config-manager --enable nginx-mainline

yum install –y nginx

创建证书保存目录

mkdir -p /etc/ssl/nginx/

创建证书配置文件

cat > /etc/ssl/nginx/nginx.mydemo.com.conf <<EOF
[req]
default_bits       = 2048
default_keyfile    = nginx.mydemo.com.key
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_ca

[req_distinguished_name]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = guangdong
localityName                = Locality Name (eg, city)
localityName_default        = shenzhen
organizationName            = Organization Name (eg, company)
organizationName_default    = IT
organizationalUnitName      = organizationalunit
organizationalUnitName_default = Development
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = nginx.mydemo.com
commonName_max              = 64

[req_ext]
subjectAltName = @alt_names

[v3_ca]
subjectAltName = @alt_names

[alt_names]
DNS.1   = nginx.mydemo.com
DNS.2   = 127.0.0.1
EOF

使用OpenSSL创建证书

cd /etc/ssl/nginx
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx.mydemo.com.key -out nginx.mydemo.com.crt -config nginx.mydemo.com.conf

查看生成的证书

[root@localhost nginx]# ll /etc/ssl/nginx/
total 16
-rw-r--r-- 1 root root  424 Jul 29 22:35 dhparam.pem
-rw-r--r-- 1 root root  970 Jul 29 23:12 nginx.mydemo.com.conf
-rw-r--r-- 1 root root 1298 Jul 29 23:13 nginx.mydemo.com.crt
-rw-r--r-- 1 root root 1704 Jul 29 23:13 nginx.mydemo.com.key

生成dhparam.pem

openssl dhparam -out /etc/ssl/nginx/dhparam.pem 2048

修改nginx配置文件

cat > /etc/nginx/conf.d/default.conf <<EOF
server {
    listen       80;
    server_name nginx.mydemo.com;
    return 301 https://$server_name$request_uri;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

server {
    listen              443 ssl http2;
    server_name         nginx.mydemo.com;
    keepalive_timeout   70;
    index               index.php index.html index.htm;
    root                /usr/share/nginx/html/;

    ssl_certificate     /etc/ssl/nginx/nginx.mydemo.com.crt;
    ssl_certificate_key /etc/ssl/nginx/nginx.mydemo.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_dhparam         /etc/ssl/nginx/dhparam.pem;
}
EOF

重启nginx服务

nginx -t
systemctl restart nginx

本地配置hosts解析

C:\Windows\System32\drivers\etc

#添加以下行
192.168.93.63 nginx.mydemo.com

导入nginx.mydemo.com.crt证书到chrome,地址栏输入以下内容,选择管理证书,受信任的证书颁发机构导入:

chrome://settings/security

配置chrome信任本地证书,地址栏输入以下内容

chrome://flags/#allow-insecure-localhost

浏览器访问验证:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤来为 Nginx 生成和使用自签名证书: 1. 生成私钥:打开终端并执行以下命令生成一个私钥文件: ``` openssl genrsa -out private.key 2048 ``` 2. 生成证书请求:使用私钥文件生成证书请求(CSR)文件: ``` openssl req -new -key private.key -out csr.pem ``` 在生成过程中,您需要提供与证书相关的信息,例如域名和组织等。 3. 自签名证书:使用私钥和证书请求文件生成签名证书: ``` openssl x509 -req -days 365 -in csr.pem -signkey private.key -out certificate.crt ``` 这将生成一个有效期为 365 天的自签名证书。 4. 配置 Nginx:打开 Nginx 配置文件(通常在 `/etc/nginx/nginx.conf` 或 `/etc/nginx/conf.d/default.conf`)并添加以下内容: ``` server { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; # 其他 Nginx 配置项... } ``` 将 `your_domain.com` 替换为您的域名,并将 `/path/to/certificate.crt` 和 `/path/to/private.key` 替换为您生成证书和私钥的路径。 5. 重启 Nginx:保存并关闭文件后,使用以下命令重启 Nginx: ``` sudo service nginx restart ``` 现在,您的 Nginx 服务器应该使用自签名证书进行加密通信了。请注意,由于这是自签名证书,因此在访问该网站时会出现浏览器安全警告。要获得受信任的证书,您应该考虑使用受信任的证书颁发机构(CA)签署的证书
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值