laravel-宝塔-服务器-域名申请配置SSL证书,实现https访问

一、前提准备

1.1 主域名一个

1.2 宝塔、服务器一个

1.3 宝塔服务器已经配置好,项目能正常运行、访问

二、申请证书

2.1 免费申请证书网址:Freessl
2.2 点击如图:然后输入自己的域名:xxxx.com,再点击右侧创建 

2.3 直接下一步:期间会要求下载KeyManager,按照步骤来就行

2.4 关键是到了以下这里:如下:

说明:到这一步,生成拿到验证码域名、本人下面选择的【记录类型:CNAME】(所以对应上面的诊断工具中的证书品牌为:TrustAsis V2 而不是TXT验证值),需要到阿里云,用自己主域名解析一个子域名,如下图步骤:

添加记录的时候,记录类型记得选择:CNAME,主机记录对应上面获取的:验证域名,记录值对应:CNAME验证值。注意:阿里云解析完域名,立即在DNS诊断工具中立即检测会有可能还是提示:不匹配,这种情况,只需等几分钟再检测即可,本人碰到过好几次。

2.5 生成SSL证书

        解析子域名成功后,点击检测:

然后到KeyManager上就会有变化了。

有时间显示即可说明成功了。

然后从KeyManager把证书导出到自己本地上即可。

三、宝塔配置SSL

3.1 站点部署证书

        到宝塔上的站点配置一下SSL证书:

注意下图红框说明,然后将自己导出的证书,将自己证书里面的复制粘贴进去

保存成功后,看到以下如图,说明成功了第一步:

3.2 配置apache的配置文件

        在Apache安装目录Apache/conf/下(Apache/conf/为Apache的默认安装目录,如果修改过该路径,需要在修改后的路径下查找httpd.conf文件。)找到并打开httpd.conf文件,在代码中找到以下参数,然后去掉参数前面的“#”。修改之后,点击保存,关掉编辑器。

#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf

3.3 配置httpd-ssl.conf文件,添加入证书路径

        由于需要把证书上传到服务器,所以在apache目录下新建个cert目录(自定义),如果多个域名,自己多创建几个cert01目录文件,做好区分即可。

上传好之后,配置httpd-ssl.com文件,该文件对应是在站点设置如下图,也可以在Apache/conf/extra/目录下,找到并双击打开httpd-ssl.conf文件,按照以下格式进行配置。

站点设置如下:

里面内容可以按照本人的基础上进行调整,如下:

------------------------------
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/xxxxxx/public"
    ServerName 7d71b5c5.xxxxxx.com
    ServerAlias xxxxxx.com www.xxxxxx.com
    #errorDocument 404 /404.html
    ErrorLog "/www/wwwlogs/xxxxxx.com-error_log"
    CustomLog "/www/wwwlogs/xxxxxx.com-access_log" combined

    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>
    
    #PHP
    <FilesMatch \.php$>
            SetHandler "proxy:unix:/tmp/php-cgi-80.sock|fcgi://localhost"
    </FilesMatch>
    
    #PATH
    <Directory "/www/wwwroot/xxxxxx/public">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.html index.php index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/xxxxxx/public"
    ServerName ssl.xxxxxx.com
    ServerAlias xxxxxx.com  www.xxxxxx.com
    #errorDocument 404 /404.html
    ErrorLog "/www/wwwlogs/xxxxxx.com-error_log"
    CustomLog "/www/wwwlogs/xxxxxx.com-access_log" combined
    
    #SSL
    SSLEngine On
    SSLCertificateFile /www/server/apache/cert/xxxxxx.com.crt
    SSLCertificateKeyFile /www/server/apache/cert/xxxxxx.com_key.key
    SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5:ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1
    SSLHonorCipherOrder On
    
    
    #PHP
    <FilesMatch \.php$>
            SetHandler "proxy:unix:/tmp/php-cgi-80.sock|fcgi://localhost"
    </FilesMatch>
    

    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>

    #PATH
    <Directory "/www/wwwroot/xxxxxx/public">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.html index.php index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>

上面主要是配置<VirtualHost *:443>以下的部分。里面的xxxxxx对应的是自己的域名;

证书文件路径:

上面的SSLCertificateFile:对应的证书是自己:域名.crt。

SSLCertificateKeyFile对应的是:域名_key.cet。

特别还要注意的是以下这点,不然访问首页时都是404:必须把index.html 放到最前面。

3.4 配置完之后,重启apache服务器。

        访问首页:成功!

四、总结

        希望能各位朋友提供一些帮助,如果有问题可以反馈到评论里,新人一枚,希望各位多多关注和支持!为大家服务是我荣幸!

  • 38
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值