linux 生成ssl证书签名及nginx https部署

零、一句话概要

1.生成私钥

1
openssl genrsa -aes256  -out www.test.com.key 2048

根据提示输入4~1024位的密码(密码安全提示:同时包含大小写字母数字及特殊符号长度8位以上)

2.生成请求文件

1
openssl req -new -key www.test.com.key -out www.test.com.csr

输入国名CN,组织名字等字段,Common Name填写要提交签名的域名(全域名例如:dev.test.com)密码可以留空

3.提交www.test.com.cer给CA签名,CA签名后会返回给你经过签名的pem文件,可以放在服务器上开启https访问

4.配置Nginx服务器

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# HTTPS server
 
server {
    listen 443 ssl;
    server_name home.we029.com;
 
    ssl_certificate /foo/bar/www.test.com.pem;
    ssl_certificate_key /foo/bar/www.test.com.key;
 
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
    location / {
        root /var/www/html;
        index index.html index.htm index.php;
   }
}

5.私钥去除密码保护

1
openssl rsa -in www.test.com.key -out www.test.com.unpass.key

根据需要选择服务器上配置的私钥是否加密,修改4 中的ssl_certificate_key 即可。如果是加密的私钥在服务器每次启动时需要输入密码(安全小贴士:如果私钥要脱密建议在独立的服务器上使用,私钥可以用来解密数据,私钥一旦泄露,相当于无秘可守,如果使用阿里云,腾讯云等云平台,相当于你的所有数据母鸡上都能看到,不建议关键的私钥脱密上传到云上,当然测试是没有问题,还有一点,最好不要多个站点共用私钥,最好每个域名一个私钥,然后用不用的私钥生成csr去让CA签名)

一、常见免费证书签名及简要操作流程

  1. 目前常见的ssl证书免费签名的主要有赛门铁克等,提供多个单域名的1年的签名,主要通过国内的几大云服务提供商提供,阿里云,腾讯云,滴滴云都有对应的提供,但是总数都有限制
  2. 使用方法,注册账号后一般在云安全相关的产品下找证书功能, 以阿里云为例,阿里云->产品->安全->证书  随便选择一种点击进入售卖页面,  这里要注意,默认阿里云下是看不到免费证书的,先在提供商处选择 Symantec  然后在下面的证书类型 几个选项上来回点几下,有可能就出现一个免费型DV SSL,选中后右侧价格显示0元,如果一直找不到,不妨试试腾讯云或滴滴云
  3. 立即购买,然后填写资料即可, 需要通过验证域名等方式验证,按照要求操作即可,一般半小时内就会收到签发后的证书,会有提示操作,一般都会根据不同的服务器分好打包,下载与服务器对应的压缩包即可
  4. 按照上文将私钥,签发后的证书放到服务器上即可打开https 443端口看看我们的“小绿锁”了
此条目发表在未分类分类目录。将固定链接加入收藏夹。