windows +nginx + https

本文详细介绍如何在StartSSL上申请免费SSL证书Class1,并配置Nginx实现HTTPS服务。从账号申请、域名验证到SSL证书生成及配置全流程解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



1.账号申请-登录
 注册 : https://startssl.com/  ;   ---Sign-up    注册成功后会提供一个登录的“管理证书”用于登录。
 登录: 将下载的管理证书导入到浏览器中就可以登录 authenticate了。

2. 域名验证(相当于获取到需要加上https域名的授权)-- 
Domain Validations处列出了验证过的域名
    Validations Wizard  -->    Select Validation -->  选择“   Domain Validation(for SSL certificate ”  --->continue --->
    输入域名(如:www.abc.com) --> 对应的邮箱会收到一个验证码(verifiction code)--->输入验证码--验证。

3.免费SSL证书申请
  3.1  生成CSR文件(一个.csr和一个.key文件)
   下载工具(https://download.startpki.com/startcom/startcomtool.exe)或者通过命令生成都可以。本次通过startcom网站提供的工具进行文件生成。
       安装工具--打开工具--选择“CSR”--选择“Professional Mode”   
          -----》Certificate Type 选择“SSL Certificate”
          -----》Certificate Subject Information 中输入域名,组织单位和地区(如www.abc.com    baidu   China) 
          -----》 Private Key and Algorithm 中选择 “Generate private key”  ,Key Length:2048  ,Hash Algorithm:SHA256 ,自定义输入密码(记住以后可能会用)
          ------》点击“Genrate CSR”    
         ----》-提示你将文件保存的位置和命令(如:E:\ssl,名字命名为www.abc.com.key)   
         ---->这样,目录E:\ssl 下会生成两个文件  
www.abc.com .csr 和  www.abc.com.key  。

 3.2 证书生成
      Certificates Wizard  
       ---> 输入域名,如“www.abc.com”   
       --->  
Please submit your Certificate Signing Request (CSR):   选择   Generated by Myself   (.cer PEM format certificate) ,将3.1中生成的文件www.abc.com.csr的内容复制在框中。
      ---》提交(submit)

 3.3证书下载
  Tool Box   --》 Certificate List --》选择域名www.abc.com 中对应的Retrieve进行下载---》将下载中的
NginxServer.zip中的内容提取出来(1_www.abc.com_bundle.crt)

 3.4 PFX文件生成
    
  Tool Box   --》    Create PKCS#12(PFX)File 
      -----> Enter Private Key : 填入3.1中生成的key的内容,即www.abc.com.key 。
     ------>Enter Certificate : 填入3.3中下载的第二个crt文件中的内容,即1_
www.abc.com_bundle.crt.crt 。
    ------> Provide a password : 填入3.1中自定义输入密码即可。
    ---- 》提交 ----》下载对应的pfx文件 (下载下来的是.p12为后缀的文件,可以将后缀名修改为.pfx)

 
 3.5 利用openssl进行转化:
      
openssl pkcs12 -in  www.abc.com .pfx -nodes -out  www.abc.com .pem # 生成明文所有内容(提示输入3.1中的密码)
      openssl rsa -in  www.abc.com .pem -out  www.abc.com .key # 取 key 文件
      openssl x509 -in  www.abc.com .pem -out  www.abc.com .crt # 取证书  

 3.6将3.5中生成的key和crt文件放在nginx目录下的htm下(自己看着放就好,我这里nginx的目录为: D:\nginx-1.10.1)
 配置参考如下:
======================================= 
  #多个https站点,需要添加一下两个选项
 
    server_names_hash_max_size 512;
     server_names_hash_bucket_size 128;
 
    upstream myServer1  { 
        server  127.0.0.1:7000 weight=1; #第1个测试网站
    } 

    upstream myServer2  { 
        server  127.0.0.1:7001 weight=1; #第2个测试网站
    } 
   
 # HTTPS server
    #
    server {
        listen       443;
        server_name  www.abc.com;

    #    ssl_certificate      ;
    #    ssl_certificate_key  cert.key;
         
         ssl on ;
         ssl_certificate      /nginx-1.10.1/html/ www.abc.com .com.crt;   ##该证书中包括两个域名的证书(www.abc.com和www.def.com;也可以各个证书单独分开)
         ssl_certificate_key  /nginx-1.10.1/html/ www.abc.com .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;
             proxy_pass         http://myServer1; ;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header   Host             $host; 
proxy_set_header   X-Real-IP        $remote_addr; 
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
#limit_req zone=allips burst=5 nodelay;
        }
    }


    #
    server {
        listen       443;
        server_name  www.def.com;

    #    ssl_certificate      ;
    #    ssl_certificate_key  cert.key;
         
         ssl on ;
         ssl_certificate      /nginx-1.10.1/html/ www.abc.com .com.crt;
         ssl_certificate_key  /nginx-1.10.1/html/ www.abc.com .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;
             proxy_pass         http://myServer2; ;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header   Host             $host; 
proxy_set_header   X-Real-IP        $remote_addr; 
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
#limit_req zone=allips burst=5 nodelay;
        }
    }
======================================== 
   
3.7重启nginx就可以生效
nginx -s  reload 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值