SSL证书

摘要:总结各大服务商的证书安装方式

Cheapsslsecurity SSL服务商

之前需要使用域名邮箱进行发送密钥操作,现在改版后直接在服务商可直接下载对应key

1、生成CSR

 a、Plesk面板生成
 b、第三方工具生成(这里推荐使用www.chinassl.net)会将对应的key与csr发送到对应的邮箱

3、获取crt

 在服务商进行下载(Download Certificate),并解压获取对应文件

4、安装

 a、Plesk面板安装
其中csr与key已经在面板中生成并自动保存此时需要填入证书 (*.crt) 、CA 证书 (*-ca.crt)
文件CACertificate-INTERMEDIATE-1.cer 对应的是CA 证书 (*-ca.crt)
文件ServerCertificate.cer 对应的是证书 (*.crt) 分别填入并保存,面板会做初步的校验,成功则通过
选择主机设置,勾选ssl支持,选择对应的证书,及安装完成
 b、nginx服务器安装
需要使用My_CA_Bundle.ca-bundle 与 ServerCertificate.cer
新建 gsx.crt
执行命令
cat ServerCertificate.cer   My_CA_Bundle.ca-bundle   >> gsx.crt
此时crt已经创建成功并保存到gsx.crt中
新建 gsx.key
查找邮件中获取的key,并保存到gsx.key中
配置服务器
server
    {
        listen 443;
        server_name doc.guosx.com;
    ssl on;
        ssl_certificate  cert/doc.crt;
        ssl_certificate_key cert/doc.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        index index.html index.htm index.php default.html default.htm default.php;
    root /home/wwwroot/showdoc;

        include rewrite/thinkphp.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log off;
    }
server
    {
        listen 80;
        #listen [::]:80;
        server_name doc.guosx.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/showdoc;

    rewrite ^(.*)$ https://doc.guosx.com$1 permanent;
        include rewrite/thinkphp.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log off;
    }

重启服务器,检查网站完成ssl证书安装
c、Apache服务器安装
(注意需要添加对应的bundle文件,否则会报错在个别浏览器不可用)
参考:https://www.jianshu.com/p/583990bb92c6
检测工具:https://www.sslshopper.com/ssl-checker.html

Pem和crt文件的转换

使用openssl库进行操作
查看openssl库的版本信息
openssl version -a 可以显示版本号以及安装路径
将pem转换为crt文件
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
将crt转换为pem文件
 openssl x509 -in a.crt -out test.pem

强制页面http请求走https请求

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

利用Openssl生成csr

这里利用了git bash来执行Openssl
1、创建对应的csr可key文件,为空即可
2、openssl req -new -nodes -newkey rsa:2048 -keyout test.key -out test.csr
进入配置流程,具体配置信息如下
字段                                     说明     示例
Country Name            ISO国家代码(两位字符)           CN
State or Province Name     所在省份                         ShangHai
Locality Name            所在城市                       ShangHai
Organization Name          公司名称                              GuoShiXin
Organizational Unit Name     部门名称                         IT
Common Name                申请SSL证书的域名           www.guosx.net
Email Address                      不需要输入      
A challenge password     不需要输入

Other

个别比较严格的验证会需要放一个中间证书,一般这个正式会跟购买证书后一起发布过来
中间证书 在网站中最好使用crt,使用pem会有个别的验证不通过。
验证地址如下:
https://www.sslshopper.com/ssl-checker.html?
评论