“Gmail使用”与“GoDaddy https证书(ssl证书)从购买到Nginx配置”:页面之间的差异

来自linuxsa wiki
(页面间差异)
跳转到导航 跳转到搜索
Evan留言 | 贡献
 
Evan留言 | 贡献
 
第1行: 第1行:
=删除多个封邮件=
== 原因==
pre: 你已购买 官方购买链接 [https://sg.godaddy.com/zh/web-security/ssl-certificate https://sg.godaddy.com/zh/web-security/ssl-certificate]


网上说的很多办法不可以用,我的 other 有 167888封 ,只能一个一个 关键词来删除  然后 选中 100封 再反选 选择与些搜索匹配的所有会话
Question: 上次 项目里有5个域名要添加 https,但是这次又要广泛域名了的,领导本来要节省钱的,反而更加浪费钱还浪费我们ops时间了


用过滤器 记得要添加到什么 应用到 些什么所有会话
Answer:<br/> &nbsp;购买ssl key 这边是决定在godaddy 购买 并选择 UCC/SAN SSL 有5个san 而我要保护的刚好是5个域名 这样的好处是费用比较低,但是对运维的要求可能就比较高,很多要运维操作的,而不像国内的,给钱就全搞定了,直接给你个crt文件


API
== 第一步 生成证书签名申请 ==
https://developers.google.com/gmail/api/quickstart/python
 
  &nbsp;shell>openssl req -new -newkey rsa:2048 -nodes -keyout your domain name.key -out your domain name.csr
 
Country Name (2 letter code) [AU]:CN(CN就代表中国)<br/> State or Province Name (full namne) [Some-State]:Guangdong(填省份)<br/> Locality Name (eg, city) []:Shaoguan(填城市名)<br/> Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXX.com<br/> Organizational Unit Name (eg, section) []:DBA<br/> Common Name (e.g. server FQDN or YOUR name) []: 一定要注意 这里要填写 5个SAN中的一个哦 这里填写最终认证的网址,如:xxx.com(加不加www都是可以的,加或不加,godaddy都会同时认证www和不带www的。见godaddy的说明 [http://support.godaddy.com/help/article/5343/generating-a-certificate-signing-request?pc_split_value=4) http://support.godaddy.com/help/article/5343/generating-a-certificate-signing-request?pc_split_value=4)]<br/> Email Address []:admin@xxx.com(最好是以域名为后缀的邮箱,填写其它的也行,)<br/> Please enter the following ‘extra’ attributes to be sent with your certificate request<br/> A challenge password []:(留空)<br/> An optional company name []:(留空)
 
#要注意这个哦 一定要注意 &nbsp;如果是UCC 这里要填写 5个SAN中的一个哦
 
Common Name (eg, your name or your server’s hostname) []:pay.game.com
 
&nbsp;如果是全域名就用 &nbsp;*.domain.com
 
省/市/自治区:您的组织机构所在的省/市/自治区。请输入完整名称,不要使用缩写形式。
 
城市/地区:您的组织机构注册或所在的城市/地区。请输入完整的城市/地区名称,不要使用缩写形式。
 
组织机构:您的企业依法注册所用的名称。列出的组织机构必须是证书申请中的域名的合法注册人。如果您是以小型企业/个体户注册的,请在“组织机构”字段中输入证书申请人的名字,并在“组织机构单位”字段中输入 DBA(经营部门)名称。
 
组织机构单位:此字段用于区分组织机构中的各部门,例如“工程部”或“人力资源部”。您可以在此字段中输入 DBA(经营部门)名称(如果有)。
 
通用名称:在 CSR 的“CN”(通用名称)字段中输入的名称必须是您要为其使用证书的网站的完全限定域名 (FQDN),例如“www.domainnamegoeshere”。请不要在通用名称中添加“[http://”或“https://”,也不要在此字段中输入您的个人姓名。 http://”或“https://”,也不要在此字段中输入您的个人姓名。]
 
如果您申请的是通配符证书,请在通用名称的左侧添加星号 (*),例如“*.domainnamegoeshere.com”。这样做会保护该通用名称的所有子域。
 
注意:如果您输入“www.domainnamegoeshere.com”作为证书签名申请中的通用名称,则该证书会同时保护“www.domainnamegoeshere.com”和“domainnamegoeshere.com”
 
&nbsp;
 
&nbsp;
 
== 第二步 添加主题备用名称 ==
 
(如果有多个san的话,如果不是 直接跳过) &nbsp;<br/> 添加主题备用名称 (SAN)<br/> ucc 添加主题备用名称<br/> [https://certs.godaddy.com/cert/advanced/jkl4oaea7onn3qfhjdmecmd7kydjy6c6 https://certs.godaddy.com/cert/advanced/jkl4oaea7onn3qfhjdmecmd7kydjy6c6]
 
&nbsp;
 
&nbsp;
 
== 第三步 GoDaddy提交CSR,并等待验证 ==
 
&nbsp;<br/> (name of your certificate).csr,把里面的内容粘到godaddy的相应表单内,然后等待审核
 
如果域名不在你的这个帐号中 就要[https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452 Verify domain ownership ]<br/> 我一般选择HTML Page 按要求 上传个文件到web目录下
 
验证 ownship
 
通配符证书&nbsp; 要去dns解析哪里 添加一个 主机为 @  (这个是以前的DZC) ,记录类型为 TXT, 值为&nbsp; 过了阵子会自己生成给你
 
现在的应该是@
 
Field What to enter
 
Name (Host) Type @
 
Value Type the entire TXT value we sent you
 
https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452
 
通配符证书可以保护2级域名,至于3、4 级域名,需要用UCC保护多个证书去保护
 
 
 
 
&nbsp;
 
<br/> [https://sg.godaddy.com/zh/help/ssl-html-dns-7452 https://sg.godaddy.com/zh/help/ssl-html-dns-7452]<br/> [https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452 https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452]
 
&nbsp;
 
&nbsp;
 
== 第四步下载证书 ==
 
审核过了,去GoDaddy下载生成的证书,选择证书时,服务器类型选择 other ,不要问我为什么 哈哈
 
这里要注意,下载回来的是2个crt文件,需要运行下面命令把他们合并成一个,这个其实是nignx的问题 如下&nbsp;
 
[http://nginx.org/en/docs/http/configuring_https_servers.html#chains http://nginx.org/en/docs/http/configuring_https_servers.html#chains]
 
cat www.mysite.com.crt gd_bundle.crt > mysite_combined.crt
 
&nbsp;
 
== 第五步 修改或者添加 nginx的配置文件 ==
 
&nbsp;server {<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #listen [::]:80;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; #listen [::]:80 ipv6only=on;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; listen 443 ssl;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; server_name game.com&nbsp;&nbsp;;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssl_certificate&nbsp;&nbsp;&nbsp;&nbsp; /data/game.com.crt;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssl_certificate_key /data/game.com.key;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssl_protocols&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TLSv1 TLSv1.1 TLSv1.2;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; ssl_ciphers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIGH:!aNULL:!MD5;
 
&nbsp;
 
&nbsp;
 
== 强制跳转443==
<pre>
第一种写法
if ($scheme = http) {
          return 301 https://$server_name$request_uri;
    }
 
 
 
第二种写法
 
server {
    listen 80;
    server_name hub.com;
    return  301 https://$server_name$request_uri;
}
 
    server {
        #listen 443 default ssl;
        listen 443 ;
        server_name  hub.com;
 
</pre>
==https和http并存==
<pre>
server
{
 
listen 80;
listen 443 ssl;
server_name www.iamle.com;
index index.html index.htm index.php;
root /home/wwwroot/www.iamle.com/;
#ssl on; 这里要注释掉
ssl_certificate /usr/local/nginx/conf/ssl/www_iamle_com.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www_iamle_com.key;
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;
#以下配置省略
 
}
 
 
要让https和http并存,不能在配置文件中使用ssl on,配置listen 443 ssl;
 
不过我在线上的  nginx/1.14  试过是可以打开的
 
 
#Author  linuxsa.org 2019 ng1.12
# 172.31.27.83:8861 ,  172.31.25.239:8861    , 172.31.16.171:8861      zuul
upstream apiconch{
    server 172.31.27.83:8861 weight=3 max_fails=2 fail_timeout=5s;
    server 172.31.25.239:8861 weight=3 max_fails=2 fail_timeout=5s;
    server 172.31.16.171:8861 weight=3 max_fails=2 fail_timeout=5s;
 
}
 
  server {
    listen 80;
#    listen 443 ssl;
    server_name  api.pro;
 
#4 https
#      ssl on;
#      ssl_certificate      /etc/nginx/ssl/STAR.com.crt ;
#      ssl_certificate_key  /etc/nginx/ssl/STAR.com.key;
#      ssl_session_cache    shared:SSL:1m;
#      ssl_session_timeout  5m;
#      ssl_ciphers  HIGH:!aNULL:!MD5;
#      ssl_prefer_server_ciphers  on;
#
    client_max_body_size 100m;
  client_body_timeout 300;
    keepalive_timeout  300;
    client_header_timeout 300;
 
proxy_ignore_client_abort on;
    access_log      /var/log/api.hailuo.pro.log main;
    error_log      /var/log/api.hailuo.pro.error.log crit;
 
  # add_header Access-Control-Allow-Origin *;
#    add_header Access-Control-Allow-Headers X-Requested-With;
#    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
 
 
#        location /file/ {
#        alias    /home/l/cailu/;
        #autoindex on;
        #autoindex_exact_size on;
        #autoindex_localtime on;
 
  #      }
 
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://apiconch;
    }
}
 
 
 
</pre>
 
== 第六 https 测试 ==
 
打开你添加了key 的那个站点, 或者 [https://casecurity.ssllabs.com/ https://casecurity.ssllabs.com/]
 
&nbsp;
 
== 常见问题==
 
SSL_ERROR_RX_RECORD_TOO_LONG
解决办法:
    编辑nginx的配置文件  nginx.conf
    在 https 的server内  listen 修改为listen 443 ssl;
这里一个小伙伴搞错的错误 记录一下
 
 
 
PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE
 
解压少了一下  这个解压出来  crt  和key 成对的,不是csr
unzip _.a.pro_sha256_cn.zip


=see also=
=see also=
[https://www.chenweiliang.com/cwl-722.html 如何批量删除所有gmail邮件?彻底清空谷歌邮箱空间]
参考 [https://www.godaddy.com/help/ssl-certificates-1000006?v=1 https://www.godaddy.com/help/ssl-certificates-1000006?v=1]
 
[https://www.linuxchina.net/?p=3561 类似&nbsp; https://www.linuxchina.net/?p=3561]
 
 
官方参考文档
 
[https://sg.godaddy.com/help/generate-a-csr-certificate-signing-request-5343 https://sg.godaddy.com/help/generate-a-csr-certificate-signing-request-5343]<br/> [https://sg.godaddy.com/zh/help/generate-a-csr-certificate-signing-request-5343 https://sg.godaddy.com/zh/help/generate-a-csr-certificate-signing-request-5343]
 
[https://blog.csdn.net/huzilinitachi/article/details/80135227  nginx ssl模块使用详解]


[https://xptt.com/643169.html 批量删除gmail邮件]


[https://blog.freessl.cn/ssl-cert-format-introduce/ SSL 证书格式普及,PEM、CER、JKS、PKCS12]


[[category:desktop]]
[[Category:Nginx]]

2019年11月11日 (一) 06:36的最新版本

原因

pre: 你已购买 官方购买链接 https://sg.godaddy.com/zh/web-security/ssl-certificate

Question: 上次 项目里有5个域名要添加 https,但是这次又要广泛域名了的,领导本来要节省钱的,反而更加浪费钱还浪费我们ops时间了

Answer:
 购买ssl key 这边是决定在godaddy 购买 并选择 UCC/SAN SSL 有5个san 而我要保护的刚好是5个域名 这样的好处是费用比较低,但是对运维的要求可能就比较高,很多要运维操作的,而不像国内的,给钱就全搞定了,直接给你个crt文件

第一步 生成证书签名申请

  shell>openssl req -new -newkey rsa:2048 -nodes -keyout your domain name.key -out your domain name.csr

Country Name (2 letter code) [AU]:CN(CN就代表中国)
State or Province Name (full namne) [Some-State]:Guangdong(填省份)
Locality Name (eg, city) []:Shaoguan(填城市名)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXX.com
Organizational Unit Name (eg, section) []:DBA
Common Name (e.g. server FQDN or YOUR name) []: 一定要注意 这里要填写 5个SAN中的一个哦 这里填写最终认证的网址,如:xxx.com(加不加www都是可以的,加或不加,godaddy都会同时认证www和不带www的。见godaddy的说明 http://support.godaddy.com/help/article/5343/generating-a-certificate-signing-request?pc_split_value=4)
Email Address []:admin@xxx.com(最好是以域名为后缀的邮箱,填写其它的也行,)
Please enter the following ‘extra’ attributes to be sent with your certificate request
A challenge password []:(留空)
An optional company name []:(留空)

#要注意这个哦 一定要注意  如果是UCC 这里要填写 5个SAN中的一个哦 

Common Name (eg, your name or your server’s hostname) []:pay.game.com

 如果是全域名就用  *.domain.com

省/市/自治区:您的组织机构所在的省/市/自治区。请输入完整名称,不要使用缩写形式。

城市/地区:您的组织机构注册或所在的城市/地区。请输入完整的城市/地区名称,不要使用缩写形式。

组织机构:您的企业依法注册所用的名称。列出的组织机构必须是证书申请中的域名的合法注册人。如果您是以小型企业/个体户注册的,请在“组织机构”字段中输入证书申请人的名字,并在“组织机构单位”字段中输入 DBA(经营部门)名称。

组织机构单位:此字段用于区分组织机构中的各部门,例如“工程部”或“人力资源部”。您可以在此字段中输入 DBA(经营部门)名称(如果有)。

通用名称:在 CSR 的“CN”(通用名称)字段中输入的名称必须是您要为其使用证书的网站的完全限定域名 (FQDN),例如“www.domainnamegoeshere”。请不要在通用名称中添加“http://”或“https://”,也不要在此字段中输入您的个人姓名。

如果您申请的是通配符证书,请在通用名称的左侧添加星号 (*),例如“*.domainnamegoeshere.com”。这样做会保护该通用名称的所有子域。

注意:如果您输入“www.domainnamegoeshere.com”作为证书签名申请中的通用名称,则该证书会同时保护“www.domainnamegoeshere.com”和“domainnamegoeshere.com”

 

 

第二步 添加主题备用名称

(如果有多个san的话,如果不是 直接跳过)  
添加主题备用名称 (SAN)
ucc 添加主题备用名称
https://certs.godaddy.com/cert/advanced/jkl4oaea7onn3qfhjdmecmd7kydjy6c6

 

 

第三步 GoDaddy提交CSR,并等待验证

 
(name of your certificate).csr,把里面的内容粘到godaddy的相应表单内,然后等待审核

如果域名不在你的这个帐号中 就要Verify domain ownership
我一般选择HTML Page 按要求 上传个文件到web目录下

验证 ownship

通配符证书  要去dns解析哪里 添加一个 主机为 @ (这个是以前的DZC) ,记录类型为 TXT, 值为  过了阵子会自己生成给你

现在的应该是@

Field What to enter

Name (Host) Type @

Value Type the entire TXT value we sent you

https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452

通配符证书可以保护2级域名,至于3、4 级域名,需要用UCC保护多个证书去保护



 


https://sg.godaddy.com/zh/help/ssl-html-dns-7452
https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452

 

 

第四步下载证书

审核过了,去GoDaddy下载生成的证书,选择证书时,服务器类型选择 other ,不要问我为什么 哈哈

这里要注意,下载回来的是2个crt文件,需要运行下面命令把他们合并成一个,这个其实是nignx的问题 如下 

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

cat www.mysite.com.crt gd_bundle.crt > mysite_combined.crt

 

第五步 修改或者添加 nginx的配置文件

 server {
         #listen [::]:80;
         #listen [::]:80 ipv6only=on;
         listen 443 ssl;
         server_name game.com  ;
         ssl_certificate     /data/game.com.crt;
         ssl_certificate_key /data/game.com.key;
         ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
          ssl_ciphers         HIGH:!aNULL:!MD5;

 

 

强制跳转443

第一种写法
 if ($scheme = http) {
           return 301 https://$server_name$request_uri;
    }



第二种写法

server {
    listen 80;
    server_name hub.com;
    return  301 https://$server_name$request_uri; 
}

    server {
        #listen 443 default ssl;
        listen 443 ;
        server_name  hub.com;

https和http并存

server
{

listen 80;
listen 443 ssl;
server_name www.iamle.com;
index index.html index.htm index.php;
root /home/wwwroot/www.iamle.com/;
#ssl on; 这里要注释掉
ssl_certificate /usr/local/nginx/conf/ssl/www_iamle_com.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www_iamle_com.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;
#以下配置省略

}


要让https和http并存,不能在配置文件中使用ssl on,配置listen 443 ssl;

不过我在线上的  nginx/1.14  试过是可以打开的


#Author   linuxsa.org 2019 ng1.12
# 172.31.27.83:8861 ,  172.31.25.239:8861     , 172.31.16.171:8861      zuul 
upstream apiconch{
    server 172.31.27.83:8861 weight=3 max_fails=2 fail_timeout=5s;
    server 172.31.25.239:8861 weight=3 max_fails=2 fail_timeout=5s;
    server 172.31.16.171:8861 weight=3 max_fails=2 fail_timeout=5s;

}

  server {
    listen 80;
#    listen 443 ssl;
    server_name  api.pro;

#4 https
#       ssl on;
#       ssl_certificate      /etc/nginx/ssl/STAR.com.crt ;
#       ssl_certificate_key  /etc/nginx/ssl/STAR.com.key;
#       ssl_session_cache    shared:SSL:1m;
#       ssl_session_timeout  5m;
#       ssl_ciphers  HIGH:!aNULL:!MD5;
#       ssl_prefer_server_ciphers  on;
#
    client_max_body_size 100m;
   client_body_timeout 300;
    keepalive_timeout  300;
    client_header_timeout 300;

 proxy_ignore_client_abort on;
    access_log      /var/log/api.hailuo.pro.log main;
    error_log       /var/log/api.hailuo.pro.error.log crit;

   # add_header Access-Control-Allow-Origin *;
#    add_header Access-Control-Allow-Headers X-Requested-With;
#    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;


#        location /file/ {
#        alias    /home/l/cailu/;
        #autoindex on;
        #autoindex_exact_size on;
        #autoindex_localtime on;

  #      }

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://apiconch;
    }
}



第六 https 测试

打开你添加了key 的那个站点, 或者 https://casecurity.ssllabs.com/

 

常见问题

SSL_ERROR_RX_RECORD_TOO_LONG 解决办法:

   编辑nginx的配置文件  nginx.conf
   在 https 的server内  listen 修改为listen 443 ssl;

这里一个小伙伴搞错的错误 记录一下


PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE

解压少了一下 这个解压出来 crt 和key 成对的,不是csr unzip _.a.pro_sha256_cn.zip

see also

参考 https://www.godaddy.com/help/ssl-certificates-1000006?v=1

类似  https://www.linuxchina.net/?p=3561


官方参考文档

https://sg.godaddy.com/help/generate-a-csr-certificate-signing-request-5343
https://sg.godaddy.com/zh/help/generate-a-csr-certificate-signing-request-5343

nginx ssl模块使用详解


SSL 证书格式普及,PEM、CER、JKS、PKCS12