Huang

Huang

OpenWRTのLuCI SSL証明書の設定

Openwrt は、グラフィカルな方法で設定管理を行うための luci 管理インターフェースを提供しています。luci インターフェースには、lan ネットワークアドレス http を使用してアクセスしますが、安全でないリンクの警告が表示されます。一般的に、ブラウザは警告を無視するためのスキップオプションを提供しています。

ただし、wan ポートアドレスを使用して luci インターフェースにアクセスする場合、新しいバージョンの Chrome では http の安全でないリンクへのアクセスが強制的に拒否されます。ウェブサイトが https アクセスをサポートしていない場合、ページを開くことができなくなり、外部ネットワークから luci インターフェースにアクセスできなくなります。

まず、wan ポートから luci インターフェースにアクセスする場合、ファイアウォールの設定を許可する必要があります。詳細については、https://blog.niekun.net/archives/1818.htmlを参照してください。

次に、luci に SSL 証明書を設定します。これにより、Chrome ブラウザがアクセスを許可します。

まず、関連するプログラムをインストールします:

opkg update && opkg install openssl-util luci-app-uhttpd 

上記のコマンドで openssl パッケージと uhttpd の UI 設定インターフェースをインストールします。これにより、uhttpd をグラフィカルな方法で設定できます。

次に、必要な SSL 証明書ファイルを生成します。

まず、etc/ssl/myconfig.confというファイルを作成します:

[req]
distinguished_name  = req_distinguished_name
x509_extensions     = v3_req
prompt              = no
string_mask         = utf8only
 
[req_distinguished_name]
C                   = US
ST                  = VA
L                   = SomeCity
O                   = OpenWrt
OU                  = Home Router
CN                  = luci.openwrt
 
[v3_req]
keyUsage            = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage    = serverAuth
subjectAltName      = @alt_names
 
[alt_names]
DNS.1               = luci.openwrt
IP.1                = 192.168.1.1

C(国)、ST(州)、L(場所)、O(組織)、OU(組織単位)を必要な内容に変更できます。

CN と DNS.1 は同じアドレスである必要があります。これらは証明書が代表するドメイン名を表し、IP と対応しています。luci インターフェースのアドレスのホストを設定した場合、ここで対応するドメイン名を定義できます。その後、このドメイン名を使用して IP にアクセスできます。

IP.1 は luci ウェブアドレスであり、対応するアドレスに設定します。

設定ファイルを保存したら、ssl ディレクトリに戻ります:

cd /etc/ssl 

次のコマンドを実行します:

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout mycert.key -out mycert.crt -config myconfig.conf 

これにより、現在のディレクトリに mycert.key と mycert.crt ファイルが自動的に作成されます。

次に、lan 内部ネットワークから luci ウェブインターフェースにアクセスし、トップに services メニューが表示されることがわかります。uhttpd をクリックして設定画面に入り、HTTPS CertificateHTTPS Private Keyにそれぞれ crt と key ファイルをアップロードします:

4104361265[1]

その後、save and apply をクリックします。

uhttpd サービスを再起動します:

/etc/init.d/uhttpd restart 

この時点で、Chrome を使用して wan ポートアドレスから luci ウェブインターフェースにアクセスすると、証明書に問題があるという警告が表示されますが、リンクを選択して正常に入ることができます。

次に、生成した ssl ファイルをバックアップリストに追加します。デフォルトでは、/etc/configディレクトリのファイルは自動的にバックアップされます。

System → Backup/Flash Firmware に移動し、configuration 欄をクリックし、/etc/ssl/mycert.crt/etc/ssl/mycert.keyをリストに追加し、save をクリックします。

その後、生成されたバックアップにはこれらのファイルが含まれます。

強制的な https 変換のキャンセル#

デフォルトでは、uhttpd の設定で「すべての HTTP を HTTPS にリダイレクトする」がオンになっています:

2983483505[1]

この設定では、http ページにアクセスしても自動的に https ページにリダイレクトされます。ローカルでのアクセスには問題ありませんが、テストの結果、frp を使用してローカルネットワークをトンネリングして luci ページに外部からアクセスする場合、無限リダイレクトの警告が表示されます。

私の frp の設定は http から https になっているため、frp がアクセスするのは https ではなくローカルの http サービスです。

解決策は、「すべての HTTP を HTTPS にリダイレクトする」のオプションをオフにし、ルーターを再起動することです。これにより、frp を使用して luci ページに正常にアクセスできるようになります。

https リダイレクトをキャンセルしたくない場合は、frpc の plugin_http2https プラグインを使用してローカルの https を http に変換し、それを frps に転送することもできます。詳細については、https://blog.niekun.net/archives/539.htmlを参照してください。

参考リンク#

How to get rid of LuCI HTTPS certificate warnings

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。