The tool I have always used is the Criss-Cross Puzzlemaker from Discovery Education. It's not fancy, but it gets the job done.
I take the puzzle that is generated by Puzzlemaker and paste it into a PowerPoint template so that I can save it and use a format that is similar to other paper assignments. This certainly isn't necessary, but I think it's a nice touch.
I recently made a puzzle to be used as a review for the beginning of the year for incoming German 2 students. It reviews typical German 1 vocabulary, such as school, numbers, colors, family, and food. I made two versions. One is easier and has the clues as the English definitions. Students fill in the German word. The other version is more difficult. The clues are in (very simple) German, and the answers are German as well. I feel like this is attainable for strong German 2 students and might even be challenging to German 3 students who are working on using the target language only. Both versions are included in the same file, which is available here: Willkommen Deutsch 2 Kreuzworträtsel. Here is the list of words for a key and for easy modification to tailor the puzzle to your own students without needing the retype the whole list: Willkommen Deutsch 2 Kreuzworträtsel word list.