小编Ody*_*see的帖子

使用 Laravel 通过 SSL 连接 MySQL

我在 Laravel 应用程序中通过 ssl 连接到我的数据库时出现问题。我的配置如下:

       'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
            'sslmode' => 'require',
            'options'   => array(
                PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
                PDO::MYSQL_ATTR_SSL_KEY => '/certs/client-key.pem',
                PDO::MYSQL_ATTR_SSL_CERT => '/certs/client-cert.pem',
                PDO::MYSQL_ATTR_SSL_CA => '/certs/ca.pem',
            ),
        ],

DB_CONNECTION=mysql
DB_HOST=xxx.xxx.xxx.xxx
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=xxxx
Run Code Online (Sandbox Code Playgroud)

这些设置在 MySQL 服务器上给了我以下错误。

2018-10-30T09:18:25.403712Z …
Run Code Online (Sandbox Code Playgroud)

mysql pdo laravel

11
推荐指数
2
解决办法
1万
查看次数

Nginx if 对 ssl 证书的声明

我想知道是否可以对 nginx ssl 证书(或配置的任何其他部分)执行 if 语句

if ( -f /etc/letsencrypt/live/{domain}/cert.pem ) {
  ssl_certificate /etc/letsencrypt/live/{domain}/cert.pem;
  ssl_certificate_key /etc/letsencrypt/live/{domain}/privkey.pem;
}
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

nginx: [emerg] "ssl_certificate" directive is not allowed here in /etc/nginx/sites-enabled/app.phase.be.conf:7
Run Code Online (Sandbox Code Playgroud)

我查看了文档和谷歌,得出的结论是这是不可能的。它仅用于重写。

在 Letsencrypt 颁发证书之前,是否有另一种方法可以完全忽略 ssl 证书或将其替换为自签名证书。这是一个自动化的过程,Nginx 可以随时重新加载,如果它被另一个进程触发(例如修改的服务器块)

编辑:

感谢@Chris 指出正确的方向!

我最终做的看起来像这样,但这是精简和简化的。

config = Config().read()
logging.basicConfig(filename=config['settings']['log_file'],
                      filemode='a',
                      format='%(asctime)s [ %(levelname)s ] - %(message)s',
                      datefmt='%m/%d/%Y  %H:%M:%S',
                      level=config['settings']['log_level'])

class NginxHandler(PatternMatchingEventHandler):
    patterns = ["*.conf", "*.cnf"]

    def process(self, event):
        logging.info('PROXY-LISTENER: Vhost configuration has changed reloading Nginx')
        time.sleep(1)
        subprocess.call(['nginx', '-s', 'reload'])

    def on_modified(self, event):
        self.process(event)

    # def on_created(self, …
Run Code Online (Sandbox Code Playgroud)

ssl nginx vhosts lets-encrypt

1
推荐指数
1
解决办法
2905
查看次数

VueJS 路由器链接 ctrl+click 带有标签元素的链接

当我使用没有标签的路由器链接时,我可以 ctrl+单击此链接以在新选项卡中打开该链接。与标签一起使用时。例如tag="td"ctrl+click 不再起作用。使用生成的可点击元素也是如此@click.prevent

<router-link :to="`/contracts/${row.id}`">
  {{ row.type | initials }}
</router-link>
Run Code Online (Sandbox Code Playgroud)

这适用于 ctrl+click

<router-link tag="td" :to="`/contracts/${row.id}`">
  {{ row.type | initials }}
</router-link>
<td @click.prevent="someAction()">
  {{ row.type | initials }}
</router-link>
Run Code Online (Sandbox Code Playgroud)

这不起作用。

是什么导致了这种行为,可以采取什么措施?

javascript vue.js vue-router

0
推荐指数
1
解决办法
1780
查看次数

标签 统计

javascript ×1

laravel ×1

lets-encrypt ×1

mysql ×1

nginx ×1

pdo ×1

ssl ×1

vhosts ×1

vue-router ×1

vue.js ×1