3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘録】Rustでwasm-pack buildしてnpm run startした時にdigital envelope routines::unsupportedのエラーが出た時の解決法【WebAssembly】

Last updated at Posted at 2022-08-01

背景

RustでWebAssemblyをやってみたいと思い、こちらを参考に進めていました。

特にバージョンなど明記がないのですが、2022.0801現在の環境で進めた時にエラーが発生したため、備忘録として残しておきます。

環境

node: v17.0.1
npm: 8.15.1

詰まったところ

npm installまで終えて、npm run startを実行したところ、エラーが出てWebサーバが起動できませんでした。

エラーの内容は下記の通りです。

(node:58651) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
ℹ 「wds」: Project is running at http://localhost:8080/
ℹ 「wds」: webpack output is served from /
ℹ 「wds」: Content not from webpack is served from /Users/*/workspace/wasm-tutprial/wasm-game-of-life/www
node:internal/crypto/hash:67
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)

(中略)

    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

原因

簡単に言うと、Node.js v17 以降で OpenSSL 3.0 まわりでハッシュ関数の設定が変わったらしいです。よくわかりませんが……

使ってるモジュールが OpenSSL 3.0 に対応してないために弾かれているようです。

解決法

主に下記の方法で対応できます。

  • オプションで--openssl-legacy-providerをつけて実行する
  • export NODE_OPTIONS=--openssl-legacy-providerとして環境変数を設定しておく
  • webpack.config.jsoutput.hashFunction: "xxhash64"を追加する

参考文献

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?