Moeyuuko's blog

  • 首页
    • 博客主页
    • 导航页
    • My Github
    • ADS-B 飞机信号接收
  • git
    • Github
    • 私人Gogs
  • 服务
    • Gogs
    • 剪切板
    • 二维码生成
    • 萌盘
    • 萌盘[旧]
    • KMS server
  • 图片
  • MC
    • Minecraft 服务器
    • 明月乡
  • 友链
  • 其他
    • 常用软件
    • 投食
得閒飲茶
Hello world !
  1. 首页
  2. 主要文章
  3. 笔记
  4. 正文

启用网站的https访问

2018年4月14日 1116点热度 3人点赞 0条评论
文章可能过时

Apache开启SSL/https的过程

启用Apache SSL模块

a2enmod ssl

默认的Apache网站提供了一个启用SSL的有用模板

a2ensite default-ssl

重新启动Apache以使这些更改生效

service apache2 reload

===购买了证书的跳过生成步骤===

生成私钥

使用openssl工具生成一个RSA私钥


nbsp;openssl genrsa -des3 -out server.key 2048

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。
注意:生成私钥,需要提供一个至少4位的密码。

生成CSR(证书签名请求)

生成私钥之后,便可以创建csr文件了。
此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。
另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下


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

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email
其中Common Name,可以写自己的名字或者域名
如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

生成自签名证书

如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。


nbsp;openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。

=====下面继续 进行证书路径指定=======

000-default.conf   #http服务器配置文件

default-ssl.conf      #https服务器配置文件

配置Apache以使用SSL

/etc/apache2/sites-enabled/default-ssl.conf

里面的注释希望你看一看  写得很清楚 每一行是干什么的    例如:错误日志呀 普通日志呀  端口呀  域名呀  脑子变通一下

nano /etc/apache2/sites-enabled/default-ssl.conf

到开头的部分<VirtualHost _default_:443>并进行以下修改。

ServerAdmin webmaster@localhost    #网站管理员邮箱
ServerName blog.moeyuuko.top:443    #域名

SSLCertificateFile /etc/apache2/ssl/apache.crt        #.crt路径
SSLCertificateKeyFile /etc/apache2/ssl/apache.key     #.key路径

SSLCACertificatePath /etc/apache2/ssl/                #ca.crt证书目录
SSLCACertificateFile /etc/apache2/ssl/apache.key      #ca.crt证书路径

进行这些更改后,请检查配置文件是否与以下内容匹配。

/ etc / apache2 / sites-enabled / default-ssl

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName example.com:443
        DocumentRoot /var/www/html

        . . .
        SSLEngine on

        . . .

        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

        SSLCACertificatePath /etc/apache2/ssl/
        SSLCACertificateFile /etc/apache2/ssl/apache.key

保存并退出文件。

重新启动Apache以应用更改。

service apache2 reload

设置重定向规则--http跳转到https

注意: 如果没有启用rewrite的 使用命令 a2enmod rewrite 启用

然后修改 /etc/apache2/apache2.conf 配置文件

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All    #None改成All
Require all granted
</Directory>

最后 重启apache2

编辑器打开.htaccess文件,写入如下规则:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$ [NC]
RewriteCond %{REQUEST_URI} !^/tz.php    ##这行是排除,可删除,举例子而已
RewriteRule (.*) https://%{SERVER_NAME}/$1 [L]

解释:

%{SERVER_PORT} ##访问端口
%{REQUEST_URI} ##比如如果url是 http://localhost/tz.php,则是指 /tz.php
%{SERVER_NAME} ##比如如果url是 http://localhost/tz.php,则是指 localhost
以上规则的意思是,如果访问的url的端口不是443,且访问页面不是tz.php,则应用RewriteRule这条规则。这样便实现了:

访问了 http://localhost/index.php 或者 http://localhost/admin/index.php

等页面的时候会自动跳转到 https://localhost/index.php 或者 https://localhost/admin/index.php

但是访问 http://localhost/tz.php 的时候就不会做任何跳转 
[你可以把他删掉]

也就是说 http://localhost/tz.php 和 https://localhost/tz.php 两个地址都可以访问
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 教程
最后更新:2022年4月2日

Moeyuuko

等,等灯,等灯

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

Moeyuuko

等,等灯,等灯

文章目录
  • Apache开启SSL/https的过程
  • ===购买了证书的跳过生成步骤===
    • 生成私钥
    • 生成CSR(证书签名请求)
    • 生成自签名证书
  • =====下面继续 进行证书路径指定=======
    • 配置Apache以使用SSL
    • 设置重定向规则--http跳转到https
最新 热点 随机
最新 热点 随机
Proxmox网桥通过SLAAC配置公网ipv6地址 OculusClient 无法启动问题 SlimeVR 全身追踪 PCB与外壳 如何选择开源许可证 Gravatar头像镜像 Centos stream 替换国内源
启用网站的https访问 负载均衡:ELB, ALB, NLB, CLB 博客已经完成搭建 Sketchware语言文件汉化 简单开启linux服务器的Swap虚拟内存 Centos stream 替换国内源

COPYRIGHT © 2022 Moeyuuko's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang