nginx https ssl 设置受信任证书[原创]

1. 安装nginx 支持ssl模块

http://nginx.org/en/docs/configure.html

  1. yum -y install openssh openssh-devel (http_ssl_module 模块依赖openssh)
  2. ./configure
  3. --sbin-path=/usr/local/nginx/nginx
  4. --conf-path=/usr/local/nginx/nginx.conf
  5. --pid-path=/usr/local/nginx/nginx.pid
  6. --with-http_ssl_module
  7. --with-pcre=../pcre-8.38
  8. --with-zlib=../zlib-1.2.8

2. 配置nginx

http://nginx.org/en/docs/http/configuring_https_servers.html

  1. server {
  2. listen 443 ssl;
  3. server_name www.example.com;
  4. ssl_certificate www.example.com.crt;
  5. ssl_certificate_key www.example.com.key;
  6. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  7. ssl_ciphers HIGH:!aNULL:!MD5;
  8. ...
  9. }

3.生成本地证书

  1. #!/bin/sh
  2. # create self-signed server certificate:
  3. read -p "Enter your domain [www.example.com]: " DOMAIN
  4. echo "Create server key..."
  5. openssl genrsa -des3 -out $DOMAIN.key
  6. echo "Create server certificate signing request..."
  7. SUBJECT="/C=US/ST=Mars/L=iTranswarp/O=iTranswarp/OU=iTranswarp/CN=$DOMAIN"
  8. openssl req -new -subj $SUBJECT -key $DOMAIN.key -out $DOMAIN.csr
  9. echo "Remove password..."
  10. mv $DOMAIN.key $DOMAIN.origin.key
  11. openssl rsa -in $DOMAIN.origin.key -out $DOMAIN.key
  12. echo "Sign SSL certificate..."
  13. openssl x509 -req -days -in $DOMAIN.csr -signkey $DOMAIN.key -out $DOMAIN.crt
  14. echo "TODO:"
  15. echo "Copy $DOMAIN.crt to /etc/nginx/ssl/$DOMAIN.crt"
  16. echo "Copy $DOMAIN.key to /etc/nginx/ssl/$DOMAIN.key"
  17. echo "Add configuration in nginx:"
  18. echo "server {"
  19. echo " ..."
  20. echo " listen 443 ssl;"
  21. echo " ssl_certificate /etc/nginx/ssl/$DOMAIN.crt;"
  22. echo " ssl_certificate_key /etc/nginx/ssl/$DOMAIN.key;"
  23. echo "}"

在当前目录下会创建出4个文件:

  • www.test.com.crt:自签名的证书
  • www.test.com.csr:证书的请求
  • www.test.com.key:不带口令的Key
  • www.test.com.origin.key:带口令的Key

Web服务器需要把www.test.com.crt发给浏览器验证,然后用www.test.com.key解密浏览器发送的数据,剩下两个文件不需要上传到Web服务器上。

以Nginx为例,需要在server {...}中配置:

  1. server {
  2. ...
  3. ssl on;
  4. ssl_certificate /etc/nginx/ssl/www.test.com.crt;
  5. ssl_certificate_key /etc/nginx/ssl/www.test.com.key;
  6. }

如果一切顺利,打开浏览器,就可以通过HTTPS访问网站。第一次访问时会出现警告(因为我们的自签名证书不被浏览器信任),把证书通过浏览器导入到系统(Windows使用IE导入,Mac使用Safari导入)并设置为“受信任”,以后该电脑访问网站就可以安全地连接Web服务器了:

  1. server {
  2. listen 443;
  3. server_name www.xxx.com;
  4. index index.html index.htm index.php default.html default.htm default.php;
  5. root /var/www;
  6. include yb.conf;
  7. #error_page 404 /404.html;
  8. location ~ [^/]\.php(/|$)
  9. {
  10. # comment try_files $uri =404; to enable pathinfo
  11. try_files $uri =404;
  12. fastcgi_pass unix:/tmp/php-cgi.sock;
  13. fastcgi_index index.php;
  14. include fastcgi.conf;
  15. #include pathinfo.conf;
  16. }
  17. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  18. {
  19. expires 30d;
  20. }
  21. location ~ .*\.(js|css)?$
  22. {
  23. expires 12h;
  24. }
  25. access_log /var/wwwlogs/www.xxx.com.log access;
  26. ssl on;
  27. ssl_certificate /var/www/conf/xxx_com.crt;
  28. ssl_certificate_key /var/www/conf/server.key;
  29. }
  30. server {
  31. listen 80;
  32. server_name xxx.com www.xxx.com;
  33. rewrite ^(.*) https://$server_name$1 permanent;
  34. }

4. 证书怎样永久有效,第一种买商业授权,几百刀一年,第二种免费的,时间短

https://www.startssl.com/ 去这个网站注册账号,然后校验你要生成的域名的证书

点击下一步,最后完成后,将证书下载到本地,

解压后, .crt 就是官方提供的证书了,将其配置到 你的 nginx[根据你用的服务器而定] 上就可以了,

如果全站需要 https,则 需要 将80的所有请求 重定向到 443端口上即可。

nginx https ssl 设置受信任证书[转然哥]的更多相关文章

  1. nginx https ssl 设置受信任证书[原创]

    1. 安装nginx 支持ssl模块 http://nginx.org/en/docs/configure.html yum -y install openssh openssh-devel (htt ...

  2. nginx配置ssl双向验证 nginx https ssl证书配置

    1.安装nginx 参考<nginx安装>:http://www.ttlsa.com/nginx/nginx-install-on-linux/ 如果你想在单IP/服务器上配置多个http ...

  3. linux:Nginx+https双向验证(数字安全证书)

    本文由邓亚运提供 Nginx+https双向验证 说明: 要想实现nginx的https,nginx必须启用http_ssl模块:在编译时加上--with-http_ssl_module参数就ok.另 ...

  4. nginx https ssl 配置

    #设置https 访问server { listen ; server_name www.xxx.com; access_log xxx/xxx/xxx.log combined; index ind ...

  5. Nginx+HTTPS(SSL/TLS)

    环境 首先确保机器上安装了openssl和openssl-devel rpm -qa | grep openssl #yum install openssl #yum install openssl- ...

  6. 图解Win7如何手动添加受信任证书

    点击开始—>运行,如下图所示:   弹出“控制台”窗口如下,如下图所示:   点击“文件—添加/删除管理单元”,如下图所示:   选择“证书”,并点击“添加”,如下图所示:   在弹出的窗口上选 ...

  7. Windows 7 手动添加受信任证书教程

    步骤如下: 1.点击开始-运行,如下图: 2.弹出"控制台"窗口如下,如下图: 3.点击"文件-添加/删除管理单元",如下图: 4.选择"证书&quo ...

  8. windows服务器怎么将证书添加到受信任证书颁发机构

    1.键盘输入win+r 快键键,出现运行,输入mmc. 2.打开控制台根节点,点击上方导航栏的文件-->添加删除管理单元.如下图. 3.在可用的管理单元中选择"证书",计算机 ...

  9. Nginx+Https自己敲命令生成证书

    nginx配置https访问 一.准备 环境:centos6.8 nginx:1.13.6 二.开始       首先安装依赖包: yum install -y gcc gcc-c++ autocon ...

随机推荐

  1. 如何在程序中使用CString

    在新建项目的时候,如果选择了MFC并且使用ATL,那么在程序中使用CString是没有问题的. 但是如果当初没有选,后面再改,虽然选上了,但是CString在编译的时候还是不被编译器识别.怎么办那? ...

  2. 在Java程序中做字符串拼接时一定要记得的MessageFormat.format

    Java里从来少不了字符串拼接的活,Java程序员也肯定用到过StringBuffer,StringBuilder,以及被编译器优化掉的+=.但这些都和下文要谈的无关. 比如有这样的字符串: 张三将去 ...

  3. iOS中重用UITableView单元格时,千万别忘了这个

    不多说,看截图

  4. Eclipse里如何配制项目在tomcat中启动

    首先,在Eclipse中新建一个Hello工程,Workspace的位置在c:/eclipse/workspace,所以hello工程的位置就是在%Workspace%/hello/这个文件夹中.  ...

  5. PHP 自学之路-----XML编程(Dom技术)

    上一节,讲了Xml文件基本语法及元素,实体及Dtd约束技术,下面就正式进入PHP的Xml编程 使用PHP技术对Xml文件进行操作 常用的有以下三种技术: 1.PHP dom 2.PHP结合XPath操 ...

  6. wepy - 与原生有什么不同(事件更改)

    对于repeat,详情见官方文档 <style lang="less"> .userinfo { display: flex; flex-direction: colu ...

  7. 图说十大数据挖掘算法(一)K最近邻算法

    如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:“菠萝”!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图 ...

  8. R语言中数据结构

    R语言还是有点古老感觉,数据结构没有Python中那么好用.以下简单总结一下R语言中经常使用的几个数据结构. 向量: R中的向量能够理解为一维的数组,每一个元素的mode必须同样,能够用c(x:y)进 ...

  9. idea 修改编辑区字体样式、大小

      idea 修改编辑区字体样式.大小 CreateTime--2018年4月26日10:36:59 Author:Marydon 设置-->Editor-->Font-->修改Fo ...

  10. 怎么将txt文件转化为html格式的文件?--极为丑陋的方式

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #怎么将txt文件转化为html格式的文件?--极为丑陋的方式 import os #找出所有的txt格式的文 ...