• 售前

  • 售后

热门帖子
入门百科

nginx结合openssl实现https的方法

[复制链接]
海田1 显示全部楼层 发表于 2021-8-14 14:49:44 |阅读模式 打印 上一主题 下一主题
在未使用SSL证书对服务器数据举行加密认证的情况下,用户的数据将会以明文的情势举行传输,如许一来使用抓包工具是可以获取到用户密码信息的,非常危险。而且也无法验证数据划一性和完整性,不能确保数据在传输过程中没被改变。以是网站如果有涉及用户账户等重要信息的情况下通常要配置使用SSL证书,实现https协议。
在生产情况中的SSL证书都必要通过第三方认证机构购买,分为专业版OV证书(欣赏器地址栏上不表现企业名称)和高级版EV(可以表现企业名称)证书,证书所保护的域名数差别也会影响价格(比如只对www认证和通配*认证,价格是不一样的),且不支持三级域名。测试中可以本身作为证书颁发机构来制作证书,欣赏器会表现为红色,代表证书逾期大概无效,如果是黄色的话代表网站有部门毗连使用的仍然是http协议。
不管使用哪种方法,在拿到证书后对Nginx的配置都是一样的,以是这里以搭建OpenSSL并制作证书来举行完整说明
一、准备情况

1)nginx服务
2)ssl模块
  1. [root@ns3 ~]# systemctl stop firewalld
  2. [root@ns3 ~]# iptables -F
  3. [root@ns3 ~]# setenforce 0
  4. [root@ns3 ~]# yum -y install pcre zlib pcre-devel zlib-devel
  5. [root@ns3 ~]# tar xf nginx-1.16.0.tar.gz -C /usr/src/
  6. [root@ns3 ~]#cd /usr/src/nginx-1.16.0
  7. [root@ns3 ~]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module&&make && make install #后续需要的模块一次性安装
复制代码
3)检测openssl是否安装
  1. [root@ns3 ~]# rpm -qa openssl 2 openssl-1.0.1e-42.el7.x86_64
复制代码
若没有安装
  1. [root@ns3 ~]# yum -y install openssl openssl-devel
复制代码
二、创建根证书CA

1、天生CA私钥
  1. [root@ns3 ~]# cd zhengshu/
  2. [root@ns3 zhengshu]# openssl genrsa -out local.key 2048
  3. Generating RSA private key, 2048 bit long modulus
  4. ...........................................................................................................................................................................................................................+++
  5. ............................................................................................................................................................................................+++
  6. e is 65537 (0x10001)
  7. [root@ns3 zhengshu]# ls
  8. local.key
复制代码
 2、天生CA证书哀求
  1. [root@ns3 zhengshu]# openssl req -new -key local.key -out local.csr
  2. You are about to be asked to enter information that will be incorporated
  3. into your certificate request.
  4. What you are about to enter is what is called a Distinguished Name or a DN.
  5. There are quite a few fields but you can leave some blank
  6. For some fields there will be a default value,
  7. If you enter '.', the field will be left blank.
  8. -----
  9. Country Name (2 letter code) [XX]:CN  #国家
  10. State or Province Name (full name) []:BJ   #省份
  11. Locality Name (eg, city) [Default City]:BJ  #城市
  12. Organization Name (eg, company) [Default Company Ltd]:
  13. Organizational Unit Name (eg, section) []:test   #部门
  14. Common Name (eg, your name or your server's hostname) []:test   #主机名
  15. Email Address []:test@test.com  #邮箱
  16. Please enter the following 'extra' attributes
  17. to be sent with your certificate request
  18. A challenge password []:wuminyan  #密码
  19. An optional company name []:wuminyan  #姓名
  20. [root@ns3 zhengshu]# ls
  21. local.csr  local.key
复制代码
  1. req: 这是一个大命令,提供生成证书请求文件,验证证书,和创建根CA
  2. -new: 表示新生成一个证书请求
  3. -x509: 直接输出证书
  4. -key: 生成证书请求时用到的私钥文件
  5. -out:输出文件
复制代码
3、天生CA根证书
  1. 这个生成CA证书的命令会让人迷惑
  2. 1.通过秘钥 生成证书请求文件
  3. 2.通过证书请求文件 生成最终的证书
  4. -in 使用证书请求文件生成证书,-signkey 指定私钥,这是一个还没搞懂的参数
  5. [root@ns3 zhengshu]# openssl x509 -req -in local.csr -extensions v3_ca -signkey local.key -out local.crt
  6. Signature ok
  7. subject=/C=CN/ST=BJ/L=BJ/O=Default Company Ltd/OU=test/CN=test/emailAddress=test@test.com
  8. Getting Private key
复制代码
三、根据CA证书创建server端证书

1、天生server私匙
  1. [root@ns3 zhengshu]# openssl genrsa -out my_server.key 2048
  2. Generating RSA private key, 2048 bit long modulus
  3. .................................+++
  4. .........................................+++
  5. e is 65537 (0x10001)
  6. [root@ns3 zhengshu]# ls
  7. local.crt  local.csr  local.key  my_server.key
复制代码
2、天生server证书哀求
  1. [root@ns3 zhengshu]# openssl x509 -req -in local.csr -extensions v3_ca -signkey local.key -out local.crt
  2. Signature ok
  3. subject=/C=CN/ST=BJ/L=BJ/O=Default Company Ltd/OU=test/CN=test/emailAddress=test@test.com
  4. Getting Private key
  5. [root@ns3 zhengshu]# openssl genrsa -out my_server.key 2048
  6. Generating RSA private key, 2048 bit long modulus
  7. .................................+++
  8. .........................................+++
  9. e is 65537 (0x10001)
  10. [root@ns3 zhengshu]# openssl req -new -key my_server.key -out my_server.csr
  11. You are about to be asked to enter information that will be incorporated
  12. into your certificate request.
  13. What you are about to enter is what is called a Distinguished Name or a DN.
  14. There are quite a few fields but you can leave some blank
  15. For some fields there will be a default value,
  16. If you enter '.', the field will be left blank.
  17. -----
  18. Country Name (2 letter code) [XX]:CN
  19. State or Province Name (full name) []:BJ
  20. Locality Name (eg, city) [Default City]:BJ
  21. Organization Name (eg, company) [Default Company Ltd]:
  22. Organizational Unit Name (eg, section) []:test
  23. Common Name (eg, your name or your server's hostname) []:test
  24. Email Address []:test@test.com
  25. Please enter the following 'extra' attributes
  26. to be sent with your certificate request
  27. A challenge password []:wuminyan
  28. An optional company name []:wuminyan
  29. [root@ns3 zhengshu]# ls
  30. local.crt  local.csr  local.key  my_server.csr  my_server.key
复制代码
3、天生server证书
  1. [root@ns3 zhengshu]# openssl x509 -days 365 -req -in my_server.csr -extensions v3_req -CAkey local.key -CA local.crt -CAcreateserial -out my_server.crt
  2. Signature ok
  3. subject=/C=CN/ST=BJ/L=BJ/O=Default Company Ltd/OU=test/CN=test/emailAddress=test@test.com
  4. Getting CA Private Key
复制代码
四、配置nginx支持SSL
  1. [root@ns3 ~]# vim /etc/nginx.cof      #这里设置了一个软连接:lln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
  2. server {
  3.         listen 80;
  4.         listen       443 default  ssl;  #监听433端口
  5.                 keepalive_timeout 100;  #开启keepalive 激活keepalive长连接,减少客户端请求次数
  6.                    ssl_certificate      /root/zhengshu/local.crt;   #server端证书位置
  7.                    ssl_certificate_key  /root/zhengshu/local.key;   #server端私钥位置
  8.                         ssl_session_cache    shared:SSL:10m;         #缓存session会话
  9.                         ssl_session_timeout  10m;                    # session会话    10分钟过期
  10.                    ssl_ciphers  HIGH:!aNULL:!MD5;
  11.                    ssl_prefer_server_ciphers  on;
  12.         server_name   test.com;
  13.         charset utf-8;
  14.         location / {
  15.             root   html;
  16.             index  index.html index.htm;
  17.         }
  18.     }
  19. }
复制代码
五、测试

输入https://192.168.200.115



到此这篇关于nginx连合openssl实现https的文章就介绍到这了,更多干系nginx实现https内容请搜刮草根技术分享从前的文章或继承欣赏下面的干系文章希望各人以后多多支持草根技术分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作