SSL数字证书安装参考教程

Vivian| 2017-11-02 SSL 评论数( 0 )
      • SSL 证书安装

        安装所需文件

        Apache2

        • .key
        • .crt
        • .ca-bundle (cat *CA.crt > domain.ca-bundle)

        IIS

        • .pfx
        • *CA.crt

        Nginx

        • .key
        • .crt 或 .pem (两种后缀的文件都可以,内容是域名证书和所有CA证书)

        证书格式转化

        from .crt to .pfx

        # 会让输密码,为了防止忘记,就直接回车好了
        openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt -certfile ca_bundle.crt

        多个证书合并成一个文件

        针对Nginx,必须把CA证书和域名证书需要合并成一个文件,然后把文件路径填入配置中

        Linux命令

        cat firstCA.crt secondCA.crt domain.crt ... > bundle.crt

        windows命令

        copy firstCA.crt + secondCA.crt + ... + domain.crt bundle.crt

        安装证书

        Apache 2.4安装

        1. 先把证书放在/etc/apache2/ssl目录下(路径可以改,比如/etc/httpd/ssl)
        2. 修改apache2的配置
        3. 重启apache2
        <IfModule mod_ssl.c>
        <VirtualHost _default_:443>
        ServerAdmin admin@localhost
        ServerName domain.com
        DocumentRoot /var/www/html

        <Directory "/var/www/html">
        Options -Indexes
        AllowOverride All
        Require all granted
        </Directory>

        SSLEngine on
        SSLCertificateKeyFile /etc/apache2/ssl/domain.key
        SSLCertificateFile /etc/apache2/ssl/domain.crt
        SSLCertificateChainFile /etc/apache2/ssl/domain.ca-bundle
        </VirtualHost>
        </IfModule>

        IIS安装

        1. 双击安装CA证书,选择自动选择目录安装,或者指定安装到中间根证书列表中
        2. 制作好pfx格式的证书后在IIS里面安装pfx格式的证书
        3. 在选定网站的网站下绑定443端口,选择正确的外网ip(也就是域名解析的ip),并配置好合适的主机名(就是域名),重启IIS

        Nginx

        和Apache2的配置相似,到/etc/nginx/sites-available修改配置,只是语法和Apache2稍有不同, 
        下面是主要的配置内容 
        注意事项:

        • 如果直接拿到了一个pem格式的证书,就可以直接用;
        • 如果手上的域名证书和CA证书是分开的,需要把手上的域名证书和CA证书合并成一个文件,比如叫bundle.crt,合并方法参考多个证书合并成一个文件
        server {
        listen 443 ssl;

        ssl_certificate /etc/nginx/ssl/bundle.crt
        # ssl_certificate /etc/nginx/ssl/bundle.pem;

        ssl_certificate_key /etc/nginx/ssl/private.key;
        ...
        }

        比较全的一个例子

        server {
        listen 80 default_server;
        listen 443 ssl;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name domain.com;
        ssl_certificate /etc/nginx/ssl/bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/private.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!MD5;
        location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
        }

        ## For php
        location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
        }

        检查配置问题

        访问 Symantec CryptoReport 
        填入你的域名点击Check 
        尤其好用的一点是如果配置中缺少CA证书,它会提示你下载相应的CA证书

        参考:

        The Most Common OpenSSL Commands

标签:

聚焦云计算,扫描二维码,关注HostUCan云计算

有好的文章希望站长之间帮助分享推广,猛戳这里我要投稿

您需要登录后才可以评论登录|注冊

暂无评论