我尝试在我的服务器上安装 positivessl 证书,但没有成功。我开始在我的服务器上创建 mydomain.key 文件并请求证书。我使用以下方法捆绑了这些文件
cat www_***_co_uk.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
我将此文件上传到我的服务器的目录中home/piet
。这也是我的 .key 和 .csr 所在的位置。现在我需要更新 nginx 配置,对吗?我正在使用来自 digital ocean 的 drupal droplet 安装。在我/etc/nginx/sites-enabled
的
drwxr-xr-x 2 root root 4096 Apr 22 07:38 .
drwxr-xr-x 5 root root 4096 Nov 25 18:45 ..
-rw-r--r-- 1 root root 16 Apr 22 07:38 default
lrwxrwxrwx 1 root root 33 Nov 25 18:45 drupal -> /etc/nginx/sites-available/drupal
/etc/nginx/sites-available
这里的默认文件是空的,所以我点击了链接。在
drwxr-xr-x 2 root root 4096 Nov 25 18:45 .
drwxr-xr-x 5 root root 4096 Nov 25 18:45 ..
-rw-r--r-- 1 root root 2709 Apr 22 07:49 default
-rw-r--r-- 1 root root 1607 Apr 22 08:08 drupal
我编辑了 drupal 文件以
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
rewrite ^/(.*) https://www.***.co.uk/$1 permanent;
root /var/www/html/drupal;
index index.php index.html index.htm;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
location ~ (^|/)\. {
return 403;
}
location / {
try_files $uri @rewrite;
}
location @rewrite {
rewrite ^ /index.php;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
server {
listen 443;
server_name www.***.co.uk;
root /var/www/html/drupal;
index index.php index.html index.htm;
ssl on;
ssl_certificate /home/piet/ssl-bundle.crt;
ssl_certificate_key /home/piet/www.***.co.uk.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
}
但它似乎仍然不起作用。事实上,我至少希望将网站重定向http://
到,https://
但事实并非如此。每次编辑后我都会重新启动 nginx。我做错了什么?
答案1
所有位置块都需要位于 https 服务器块中,因为这是处理请求的服务器块。唯一需要位于 http 服务器部分中的逻辑是执行重定向所需的逻辑。
编辑: 现在我们有了有问题的主机名,我可以看到您服务器上的端口 443 已关闭:
$ nmap www.boilerplaza.co.uk -p 443
Starting Nmap 6.47 ( http://nmap.org ) at 2015-04-22 09:12 CDT
Nmap scan report for www.boilerplaza.co.uk (46.101.22.233)
Host is up (0.10s latency).
PORT STATE SERVICE
443/tcp closed https
Nmap done: 1 IP address (1 host up) scanned in 0.36 seconds
也许您需要在防火墙上打开该端口。