安装与配置

如何生成CSR

(保存好CSR和KEY)

https://www.ssltools.org/csr_generate.html

2 . 使用OpenSSL生成:

方法一、
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -out server.csr

方法二、 一行命令直接生成 (需要修改省份城市和公司名称)

openssl req -nodes -sha256 -newkey rsa:2048 -keyout getssl.cn.key -out getssl.cn.csr -subj “/C=CN/ST=Sichuan/L=Chengdu/O=成都汇智云安信息科技有限公司/OU=IT/CN=www.sslcertificateshop.com”
注意不要包含特殊字符 : < > ~ ! @ # $ % ^ * / \  ?.,&

Country Name                        : CN (2位国家代码)    其他国家 ( US  、 AU)
State or Province                   : Sichuan (省份)
Locality                                  :Chengdu (城市名称)
Organization                          :成都汇智云安信息科技有限公司 (公司名称)
Organizational Unit                :Support (部门 一般填写IT)
Common Name                       :www.sslcertificateshop.com (申请证书使用的域名)

注意:如果申请DV证书, 请填写英文或者拼音 ,  OV EV ( GeoTrust 、 Symantec、Thawte、DigiCert、GlobalSign)可以使用中文如果是申请通配符证书, Common Name 填写 *.abc.com

生成ECC CSR

1. 先生成KEY

openssl ecparam -out server.key -name prime256v1 -genkey

##ecc证书建议使用256位,可选 prime384v1 或 prime521v1

2. 生成CSR

openssl req -new -key server.key -out server.csr

####然后根据提示输入国家城市域名等信息 , 会员中心中提交CSR  (server.csr)即可。系统会自动颁发ECC的证书.
注意不要包含特殊字符 : < > ~ ! @ # $ % ^ * / \  ?.,&

Country Name                        : CN (2位国家代码)    其他国家 ( US  、 AU)
State or Province                   : Sichuan (省份)
Locality                                  :Chengdu (城市名称)
Organization                          :成都汇智云安信息科技有限公司 (公司名称)
Organizational Unit                :Support (部门 一般填写IT)
Common Name                       :www.sslcertificateshop.com (申请证书使用的域名)

注意:如果申请DV证书, 请填写英文或者拼音 ,  OV EV ( GeoTrust 、 Symantec、Thawte、DigiCert、GlobalSign)可以使用中文如果是申请通配符证书, Common Name 填写 *.abc.com

APACHE安装SSL证书

第一步: 上传你的证书到 服务器

上传文件到 /etc/ssl/, 目录可以自定义

www_youdomain_com.crt 或者 server.crt   (这个是自己域名的证书文件)

server.ca-bundle  (这个是证书链)

servert.key (证书私钥)

第二步: 编辑你的httpd.conf 文件 ,添加如下配置

Listen 443  (如果配置已经存在就不要加)
LoadModule ssl_module modules/mod_ssl.so (如果配置已经存在就不要加)
NameVirtualHost *:443 (非必须,配置多个SSL站点会需要)


ServerName www.getssl.cn
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/server.crt 
SSLCertificateKeyFile /etc/ssl/server.key 
SSLCertificateChainFile /etc/ssl/server.ca-bundle

第三步:重启Apache

services httpd restart

server.ca-bundle 是一个证书链,必须配置证书才能被信任

注意事项:
1. 确认是否加载mod_ssl.so模块  
2. 是否Listen  443
3. 防火墙是否允许443端口访问
4. 免费的CDN服务大多数不支持SSL,请先跟CDN服务商确认

Nginx 安装SSL证书

登录会员中心,下载nginx证书, server.crt server.key 两个文件.

nginx安装SSL模块(可选如果nginx没有安装,需要重新编译)

./configure --with-http_stub_status_module --with-http_ssl_module
make && make install

接下来配置 Nginx站点, 重启nginx即可 (这个只是示范 , 站点的其他配置需要自己添加)

server {
	listen       80;
	server_name  www.sslcertificateshop.com;
	rewrite ^ https://$http_host$request_uri? permanent;
}
server {
    listen 443;
    server_name www.sslcertificateshop.com;
    ssl on;
    ssl_certificate /etc/ssl/www.sslcertificateshop.com.crt;
    ssl_certificate_key /etc/ssl/server.key;
    ssl_prefer_server_ciphers on;
    location / {
        root /home/sslcertificateshop.com/;
        index index.php;
    }
}

 

注意事项:

使用CDN的 需要在CDN上面安装SSL
Nginx要编译Openssl模块才能安装SSL  (nginx -V  如果有 http_ssl_module 就可以)

支持同IP多个SSL检测方法 (nginx -V) 有出现:

nginx tls sni support enabled  (表示可以安装多个证书)

Apache 2 配置 SSL

本文档指导您在 Apache 2.x HTTP 服务器上安装并配置 SSL 证书,关于 Apache 2.x 在各个平台上的安装不再涉及。

由于近年 OpenSSL 高危漏洞不断,因此强烈推荐您在开始配置之前首先升级 OpenSSL 到最新版本

# 确保 Apache SSL 模块开启

sudo a2enmod ssl

# 配置 SSL 证书

完整的 SSL 证书分为四个部分:

  • CA 根证书 (root CA)
  • 中级证书 (Intermediate Certificate)
  • 域名证书
  • 证书密钥 (仅由您持有)

以 COMODO PositiveSSL 证书为例,您将收到四份文件:

  • 根证书 – AddTrustExternalCARoot.crt
  • 中级证书 – COMODORSAAddTrustCA.crt
  • 中级证书 – COMODORSADomainValidationSecureServerCA.crt
  • 您的域名证书 – example_com.crt

您要依照 中间证书 -> 根证书 的顺序串联为证书链,才能被绝大多数浏览器信任。使用 cat 命令串联证书:

cat example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > example_com.bundle.crt

得到 example_com.bundle.crt 后,和密钥文件 example_com.key 一同上传至服务器并保存在安全的位置,例如/etc/ssl/private 目录下 (没有此目录请创建)。

# 修改 Apache 站点配置

下面是一份针对 Apache 2.4 的 SSL 部分配置

SSLEngine on
SSLCertificateFile    /etc/ssl/private/example_com.crt
SSLCertificateKeyFile /etc/ssl/private/example_com.key
SSLCertificateChainFile /etc/ssl/private/example_com.bundle.crt

以下为 的详细配置


DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile    /etc/ssl/private/example_com.crt
SSLCertificateKeyFile /etc/ssl/private/example_com.key
SSLCertificateChainFile /etc/ssl/private/example_com.bundle.crt

# 强制定向到 HTTPS

首先,我们需要确认 Apache 开启 mod_rewrite 模块,如果没有开启,请使用 sudo a2enmod rewrite 命令开启。

其次,你需要在站点配置文件中开启 AllowOverride,这样 .htaccess 文件才会起作用。

开启并重启 Apache 后,复制一下代码到你目录的 .htaccess 文件

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# SSL 安全配置

# 禁用压缩
SSLCompression off
# 禁用 SSLv2 和 SSLv3
SSLProtocol All -SSLv2 -SSLv3
# 抵御 Poodle 和 SSL Downgrade 攻击

您需要支持 TLS-FALLBACK-SCSV 以自动开启此功能。下列 OpenSSL 版本包含对 TLS-FALLBACK-SCSV 的支持,Lighttpd 会自动启用此特性。

  • OpenSSL 1.0.11.0.1j 及之后的版本中支持
  • OpenSSL 1.0.01.0.0o 及之后的版本中支持
  • OpenSSL 0.9.80.9.8zc 及之后的版本中支持
# 加密和交换算法

一份推荐的配置:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

如果您需要兼容老式系统和浏览器 (Windows XP, IE6),请使用下面的:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
# Forward Secrecy 和 DHE 参数
cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 4096

建议您使用性能强劲的平台生成此文件,例如最新版的至强物理机。如果您只有一台小型 VPS,请使用 openssl dhparam -out dhparam.pem 2048 命令生成 2048bit 的参数文件。

添加到配置文件:

SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
# 启用 HSTS

添加到配置文件:

# Optionally load the headers module:
LoadModule headers_module modules/mod_headers.so


    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

# 重启 Apache

sudo service apache2 restart

Lighttpd 配置 SSL

本文档指导您在 lighttpd 1.4.x HTTP 服务器上安装并配置 SSL 证书,关于 lighttpd 1.4.x 在各个平台上的安装不再涉及。
由于近年 OpenSSL 高危漏洞不断,因此强烈推荐您在开始配置之前首先升级 OpenSSL 到最新版本

# 配置 SSL 证书

完整的 SSL 证书分为四个部分:

  • CA 根证书 (root CA)
  • 中级证书 (Intermediate Certificate)
  • 域名证书
  • 证书密钥 (仅由您持有)

以 COMODO PositiveSSL 证书为例,您将收到四份文件:

  • 根证书 – AddTrustExternalCARoot.crt
  • 中级证书 – COMODORSAAddTrustCA.crt
  • 中级证书 – COMODORSADomainValidationSecureServerCA.crt
  • 您的域名证书 – example_com.crt

您要依照 中间证书 -> 根证书 的顺序串联为证书链,才能被绝大多数浏览器信任。使用 cat 命令串联中间证书、根证书:

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ca-root.bundle.crt

然后将证书密钥 example_com.key 和域名证书 example_com.crt 合并

cat  example_com.key example_com.crt > example_com.pem

得到 root.bundle.crtexample_com.pem 后,将两者上传至服务器并保存在安全的位置,例如/etc/ssl/private 目录下 (没有此目录请创建)。

# 修改 lighttpd 站点配置

下面是 lighttpd.conf 文件中关于 SSL 的部分配置

$SERVER["socket"] == ":443" {
     ssl.engine = "enable"
     ssl.pemfile = "/etc/ssl/private/example_com.bundle.pem"
     ssl.ca-file = "/etc/ssl/private/ca-root.bundle.crt"
     server.name = "example.com"
     server.document-root = "/var/www"
}

# 强制定向到 HTTPS

下面是 lighttpd.conf 文件中关于强制 HTTP 定向到 HTTPS 的部分配置

$HTTP["scheme"] == "http" {
    # capture vhost name with regex conditiona -> %0 in redirect pattern
    # must be the most inner block to the redirect rule
    $HTTP["host"] =~ ".*" {
        url.redirect = (".*" => "https://%0$0")
    }
}

# Lighttpd 安全配置

# 禁用 SSL Compression (抵御 CRIME 攻击)
ssl.use-compression = "disable"
# 禁用 SSLv2 及 SSLv3
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
# 抵御 Poodle 和 SSL downgrade 攻击

您需要支持 TLS-FALLBACK-SCSV 以自动开启此功能。下列 OpenSSL 版本包含对 TLS-FALLBACK-SCSV 的支持,Lighttpd 会自动启用此特性。

  • OpenSSL 1.0.11.0.1j 及之后的版本中支持
  • OpenSSL 1.0.01.0.0o 及之后的版本中支持
  • OpenSSL 0.9.80.9.8zc 及之后的版本中支持
# 加密及交换算法

一份推荐的配置:

ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH"

如果您需要兼容一些老式系统和浏览器 (例如 Windows XP 和 IE6),请使用下面的:

ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"
# 配置 Forward Secrecy 和 DHE 参数

生成强 DHE 参数:

cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 4096

建议您使用性能强劲的平台生成此文件,例如最新版的至强物理机。如果您只有一台小型 VPS,请使用 openssl dhparam -out dhparam.pem 2048 命令生成 2048bit 的参数文件。

添加到 SSL 配置文件:

ssl.dh-file = "/etc/ssl/certs/dhparam.pem"
ssl.ec-curve = "secp384r1"
# 启用 HSTS
server.modules += ( "mod_setenv" )
$HTTP["scheme"] == "https" {
    setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload")
}

# 重启 Lighttpd

sudo service lighttpd restart

IIS8安装SSL证书

第一步:打开IIS管理器 , 右侧选择服务器

第二步:打开【服务器证书】 , 右键【导入证书】

第三步:选择需要绑定SSL的站点, 右键 【编辑绑定】

第四步:添加网站绑定,   类型: HTTPS, 然后【选择 SSL证书】 ,确定即可

如果服务器只有一个IP,并且需要安装多个SSL证书,主机名填写域名,并且勾选【需要服务器名称指示】

设置完成后可以使用https://www.sslcertificateshop.com 访问 , 如果无法访问,请确认防火墙是否允许443端口。

注意如果用了CDN, 需要在CDN上配置SSL证书

Tomcat 安装SSL证书

第一步: 进入Tomcat安装目录,  d:\apache-tomcat-8.0.18, 把下载的jks文件放在tomcat安装目录即可。

d:\apache-tomcat-8.0.18\getssl.cn.jks

第二步: 打开tomcat配置文件 conf/server.xml

tomcat默认一般是8080端口或者 80端口,先找到这一段。

在这段下面插入下面配置:

  • keystoreFile=”getssl.cn.jks”            【 jks 文件名需要修改】
  • keystorePass=”123456″                 【jks密码】

注意事项:

  • 防火墙要允许443端口
  • 使用CDN,需要让CDN服务商安装SSL
  • Tomcat 6.0上面配置如果无法启动,把protocol修改为 protocol=”HTTP/1.1″

Squid 安装ssl证书

配置Squid,先下载Apache格式的证书

https_port public-ip:443 cert=/etc/server.crt key=/etc/server.key cafile=/etc/ca-bundle.crt defaultsite=domain.com
cache_peer 127.0.0.1 parent 8081 0 no-query originserver login=PASS

cPanel 安装SSL证书

server.ca-bundle    根证书

第一步 : 登录cPanel , 点击 “ TLS/SSL Manager”

第二步: 点击最后一项 “安装证书到您的网站“

第三步: “选择自己的域名” ,然后把证书文件填写在下面的三个输入框中

文件对应关系,可以使用notepad++打开证书文件

Certicate(CRT)                ->  server.crt 
KEY(private key )            ->  server.key
CA-BUNDLE                     ->  server.ca-bundle

第四步 : 点击 “Install Certificate” 安装证书 , 一般等几分钟cPanel 就会生效。 
然后使用https://你的域名   就可以访问了

WDCP配置 SSL证书

第一 . 打开文件管理器, 选择nginx (如果用的是apache就点击apache)

第二. 找到站点配置文件. 复制一份 ,端口更改为443 , 并且添加SSL配置,参考NGINX安装教程

第三, 重启web服务

第四。 添加防火墙,打开443端口

iphone 签名.mobileconfig文件

  • company.mobileconfig 未签名的mobileconfig文件
  • server.crt 你的服务器SSL证书
  • server.key 您的私钥
  • ca-bundle.crt 你的根证书链
  • signed.mobileconfig 签名过的mobileconfig名字

签名命令:

openssl smime -sign -in company.mobileconfig -out signed.mobileconfig -signer server.crt -inkey server.key -certfile ca-bundle.crt -outform der -nodetach

服务器设置:

apache 要添加MIME

AddType application/x-apple-aspen-config .mobileconfig

nginx 修改mime.types

application/x-apple-aspen-config .mobileconfig

服务器端开发 – PHP语言:

header('Content-type: application/x-apple-aspen-config; chatset=utf-8');
header('Content-Disposition: attachment; filename="company.mobileconfig"');
echo $mobileconfig;

DirectAdmin 安装SSL

1.  打开 SSL证书

2 . 先粘帖server.key ,在后面粘帖 server.crt的内容,点击保存

3. 页面下面点击 Click Here , 安装根证书.

4. 勾选 use a ca cert , 粘帖 ca-bundle文件的内容

NodeJS 配置HTTPS SSL

NodeJS 大多数都是自己编写的HTTP 服务,代码如下

var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.crt')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(443);

注意: 使用nginx格式的证书

stunnel 安装SSL证书

安装 Stunnel

apt-get install stunnel4 -y

修改配置文件

nano /etc/stunnel/stunnel.conf

配置SSL证书

cert = /etc/stunnel/stunnel.pem

Vesta 安装SSL

Vesta使用apache格式证书,在会员中心下载。

1. 登录Vesta , 打开【网站管理】

2. 选择要安装SSL证书的站点,点击【修改】

3. 添加SSL证书,选择【SSL支持】

SSL证书   《====》 server.crt

SSL key   《====》 server.key

SSL 中级证书   《====》 ca-bundle.crt

phpStudy 安装SSL证书

第一步: 下载apache格式的证书, 解压后放到d:\ssl 目录

第二步: 打开 D:\phpStudy\Apache\conf\httpd.conf

在最后面添加SSL配置.

Listen 443


DocumentRoot "D:\wwwroot"
    ServerName www.test.com
    ServerAlias test.com
    SSLEngine on
    SSLCertificateFile "d:/ssl/server.crt"
    SSLCertificateKeyFile "d:/ssl/server.key"
    SSLCertificateChainFile "d:/ssl/server.ca-bundle" 
 

第三步: 重启Apache.

IIS7 安装多域名证书

第一步: 首先上传PFX格式证书到服务器桌面,打开IIS管理器. 选择 【服务器证书】

第二步:右键导入PFX证书, 输入证书密码。

导入完成后,即可看到刚刚导入的新证书。

第三步: 修改证书名称

1.  【WINDOWS键 + R 】 打开运行窗口, 输入 【 mmc 】

2. 点击 【文件】 , 选择【添加/删除管理单元】,【可用管理单元】 选择 【 证书】 点击添加。弹出窗口,
选择 【 计算机账户】,确定即可

【个人 -》 证书 】 里面可以看到你刚刚导入的域名, 选中证书,右键属性,  修改友好名称点击确定

例如域名是 www.getssl.cn  【友好名称修改为   *.getssl.cn】

然后回到IIS 管理器 , 为站点绑定域名

第四步: 点击”添加” , 选择 “HTTPS” ,选择刚刚导入的证书名称,点击确认。

设置完成后可以使用https://www.sslcertificateshop.com 访问 , 如果无法访问,请确认防火墙是否允许443端口。

注意如果用了CDN, 需要在CDN上配置SSL证书

phpstudy安装SSL证书

首先,确保你的apache编译了ssl模块,这是支持ssl证书必要的条件(如果没有,请编译,打开phpstudy——设置——PHP模块扩展——php-openssl前面勾选上)。

第一:进入到apache目录下,httpd.conf找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的注释符,使得ssl模块生效(如果该模块已去掉注释,请不用操作)。

第二,找到配置80端口http的网站配置的地方,一般在如下路径:D:\phpStudy\Apache\conf有一个vhosts.conf的文件,按照80的配置,另起一个VirtualHost443,如下所示:

Listen 443

ServerAdmin admin@youradmin.com      #(和80一样)

ServerName yourdomain.com                 #(和80一样)

Errorlog /logs                                           #(和80一样)

DocumentRoot  “D:\phpStudy\WWW”     #(和80一样)

SSLEngine on

SSLProtocol  all -SSLv2 -SSLv3

SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL

SSLCertificateFile  /usr/local…/yourdomain.com.crt(服务器上证书路径)

SSLCertificateKeyFile /usr/local…/yourdomain.com.key(服务器上证书路径)

SSLCertificateChainFile /usr/local…/bundle.crt(服务器上证书路径)

第三,重启apache(有可能报错,看一下443端口是否被防火墙拦截或被占用)

第四,apache正常重启后,在浏览器里面输入https://yourdomain.com就能看到安全锁出来啦。

第五,备份好您的证书!

大家在部署的时候尽量找准自己的apache下的路径,上面的仅供参考!

IIS服务器多域名SSL证书绑定443端口解决方案

工具/原料

iis服务器

多域名SSL证书

默认情况一个服务器的IIS只能绑定一个HTTPS也就是443端口

要实现多个站点对应HTTPS只能更改IIS配置

首先把每个站点分配个不同端口,如443.444.445…(证书一定要是多域的)

然后在:C:\Windows\system32\inetsrv\config\applicationHost.config

找到

<binding protocol=”https” bindingInformation=”*:443″ />

<binding protocol=”https” bindingInformation=”*:444″ />

<binding protocol=”https” bindingInformation=”*:445″ />

修改成:

<binding protocol=”https” bindingInformation=”*:443:www.domain.com” />

<binding protocol=”https” bindingInformation=”*:443:www.domain.com” />

<binding protocol=”https” bindingInformation=”*:443:www.domain.com” />

切记需要对应的每个站点都修改。

然后在iis的站点上重新选择下证书,重启iis站点。

注意:重启iis站点,不要重启整个IIS服务器,不然又需要重新操作一次上边的步骤!