多语言展示
当前在线:953今日阅读:84今日分享:32

如何给网站配置SSL证书(https)

访问安全的需求和大众的趋势使得我们该考虑给网站加ssl了,给网站加上ssl并不难,只要申请一个免费的ssl证书,在服务器端配置好ssl,wordpress稍加修改就可以实现https访问了。
工具/原料

SSL证书

申请SSL证书
1

如今免费的ssl证书申请机构不少,对于个人站长来说使用一个免费的DV SSL就可以了,要求更高的可以选择付费购买高级ssl证书。说到ssl证书,有以下三种

2

我们能申请到的免费证书就是DV SSL,个人站长不二之选。

配置SSL证书
2

首先,下载证书,并上传到服务器。其次进入网站的目录下,找到usr/local/Nginx/conf下的'自己的域名前缀.conf'这个文件(安装Nginx的方法不同有可能目录也不一样),在文件中如图添加字段:listen 443 ssl;ssl_certificate /usr/local/nginx/cert/2477.pem;ssl_certificate_key /usr/local/nginx/cert/2477.key;重启nginx,ssl配置生效。

WordPress的相关设置

在服务器端配置好ssl证书并开启了443端口的话,就可以通过https://域名访问了,如果不能访问,前面的配置过程可能没有弄好。虽然能进行https访问wordpress了,但是在打开的页面下通过审查元素你会发现站内还是有部分js文件、css文件、图片等静态资源都是http链接。由于HTTPS协议的规定,https网站是不能引用http资源的或者需要点击窗口确认http资源的引用,结果是网站没有小绿锁虽然是https链接,并且各种js效果失效css样式缺失。https网页引用了http的资源小绿锁就没有显示,如果你不想再用http,那么可以在后台修改wordpress地址和站点地址,全部换成https://,如下图设置:

替换wordpress的http链接

由于我们在编辑文章时插入的图片都是都标上了http链接,所以打开网页时小绿锁依然没有显示。提供两个代码可用于修改wordpress的http链接:HTTPS绝对链接替换:替换wordpress网站中的http链接为https,代码放于主题function.php文件中。(注意替换的是标签仅是网站内部链接,外部无效)add_filter('get_header', 'fanly_ssl');function fanly_ssl(){    if( is_ssl() ){        function fanly_ssl_main ($content){            $siteurl = get_option('siteurl');            $upload_dir = wp_upload_dir();            $content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content);            $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), 'https:'.strstr($upload_dir['baseurl'], '//'), $content);            return $content;        }        ob_start('fanly_ssl_main');    }}HTTPS相对链接替换:替换wordpress网站中的http链接为//相对链接,即http中引用http资源,https引用https资源,自动适应:add_filter('get_header', 'fanly_ssl');function fanly_ssl(){    if( is_ssl() ){        function fanly_ssl_main ($content){            $siteurl = get_option('siteurl');            $upload_dir = wp_upload_dir();            $content = str_replace( 'http:'.strstr($siteurl, '//'), strstr($siteurl, '//'), $content);            $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), strstr($upload_dir['baseurl'], '//'), $content);            return $content;        }        ob_start('fanly_ssl_main');    }}

http强制跳转https
1

当我们的网站https已经可以访问了又不想继续留着http的话,可以做一个http跳转https的301重定向,这样用户访问时就会自动跳转到https,非常方便。进入网站的目录下,打开'自己的域名前缀.conf'这个文件,添加代码:if ($server_port = 80) {return 301 https://$server_name$request_uri;}if ($scheme = http) {return 301 https://$server_name$request_uri;}error_page 497 https://$server_name$request_uri;插入位置如图所示:

2

然后再重启一下Nginx,然后你可以方法你的非https链接看看是不是跳转到了https链接,如果跳转了,那么祝贺你大功告成。编写不易,你的赞是最大鼓励!!

推荐信息