Nginx自签名SSL证书 实现https转换为http请求服务

本文章主要介绍了Nginx自签名SSL证书,实现https转换为http请求服务的过程,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、在Linux上安装Nginx

  • 参考地址:Linux安装Nginx详细教程

二、生成自签名SSL证书

  • 生成RSA密钥(过程需要设置一个密码,记住这个密码)
 openssl genrsa -des3 -out server.key 1024
  • 提取公钥
openssl rsa -in server.key -out server_pub.key
  • 生成一个证书请求
openssl req -new -key server.key -out server.csr
#除了密码和网站域名,其他都可以默认回车即可
[root@localhost cert]# openssl req -new -key server.key -out server.csr       
Enter pass phrase for server.key:             #之前设置的密码
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:domain.com   #网站域名(必须的)          
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
  • 使用上面的密钥和CSR对证书签名
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • 执行后会生成以下四个文件
    Nginx自签名SSL证书 实现https转换为http请求服务_第1张图片

三、配置Nginx

  • 检测nginx是否支持ssl
./nginx -V  #如果没有ssl,请参考文章开头的安装nginx

Nginx自签名SSL证书 实现https转换为http请求服务_第2张图片

  • nginx配置文件
events {
  worker_connections  204800;  ## Default: 1024
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
  server {
    listen 443;
    server_name domain.com; #配置签名的域名
    ssl on;
    ssl_certificate  /home/cert/server.crt;
    ssl_certificate_key /home/cert/server_pub.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;
    }
}
  • 重启nginx
./nginx -s reload

四、测试

  • 出现nginx的欢迎页面说明已经成功
    Nginx自签名SSL证书 实现https转换为http请求服务_第3张图片
  • 如果访问不了,防火墙关闭或者只开放443端口
sudo service firewalld stop 

如果本文对您有一点点帮助,可以点赞、关注、收藏一下

你可能感兴趣的:(nginx,linux,nginx,https)